有没有一种方法可以在矩形中间绘制文本。我可以找到各种对齐方式,但我尝试过的任何方法都不能将文本垂直居中在矩形中。
有没有一种简单的方法可以做到这一点,或者有什么方法可以将矩形居中然后在其中绘制?
我直接绘制到 CGContext,尝试使用 NSString::drawWithRect 或类似的东西,因为我真的不想添加一个标签来渲染一些基本文本。
嗯,字体属性pointSize
直接对应于 a 的像素高度NSString
画在那个UIFont
,所以你的公式将是这样的:
- (void) drawString: (NSString*) s
withFont: (UIFont*) font
inRect: (CGRect) contextRect {
CGFloat fontHeight = font.pointSize;
CGFloat yOffset = (contextRect.size.height - fontHeight) / 2.0;
CGRect textRect = CGRectMake(0, yOffset, contextRect.size.width, fontHeight);
[s drawInRect: textRect
withFont: font
lineBreakMode: UILineBreakModeClip
alignment: UITextAlignmentCenter];
}
UITextAlignmentCenter
处理horizontal
居中,所以我们使用 contextRect 的整个宽度。这lineBreakMode
可以是任何你喜欢的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)