UILabels和textFields可以自动缩放其字体以适应视图的空间(例如文本累积)。有没有办法衡量所执行的量表的数量?看起来,当自动缩放时,无论文本显示的比例如何,myLabel.font.pointsize或myTextField.font.pointSize的值都保持不变。
答案 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
将是标签用于绘制的字体的实际大小。