3

UILabels 和 textFields 可以自动缩放它们的字体以适应视图的空间(例如文本的积累)。有没有办法测量所执行的规模的数量?看起来,在自动缩放时,无论文本的显示比例如何,myLabel.font.pointsize 或 myTextField.font.pointSize 的值都保持不变。

4

1 回答 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 回答