测量UILabel和textField的adjustsFontSizeToFitWidth的数量

时间:2012-08-06 15:04:24

标签: ios xcode fonts uitextfield uilabel

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

1 个答案:

答案 0 :(得分:6)

有一种方法可以在NSString的UIKit添加中执行此操作:

- (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将是标签用于绘制的字体的实际大小。