UILabels 和 textFields 可以自动缩放它们的字体以适应视图的空间(例如文本的积累)。有没有办法测量所执行的规模的数量?看起来,在自动缩放时,无论文本的显示比例如何,myLabel.font.pointsize 或 myTextField.font.pointSize 的值都保持不变。
问问题
1774 次
1 回答
6
在 UIKit 的添加中有一种方法可以做到这一点NSString
:
- (CGSize)sizeWithFont:(UIFont *)font minFontSize:(CGFloat)minFontSize actualFontSize:(CGFloat *)actualFontSize forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
因此,如果您使用的是 UILabel,则可以使用以下代码:
CGFloat actualFontSize;
UILabel *label = [self label];
CGSize size = [[label text] sizeWithFont:[label font]
minFontSize:[label minimumFontSize]
actualFontSize:&actualFontSize
forWidth:[label bounds].size.width
lineBreakMode:[label lineBreakMode]];
此时,size
将包含绘制文本actualFontSize
的大小,并将是标签用于绘制的字体的实际大小。
于 2012-08-06T15:23:13.557 回答