测量UILabel或textField的adjustsFontSizeToFitWidth的大小

Mrw*_*lfy 3 xcode fonts uitextfield uilabel ios

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

Seb*_*lis 6

有一种方法可以在UIKit中添加以下内容NSString:

- (CGSize)sizeWithFont:(UIFont *)font minFontSize:(CGFloat)minFontSize actualFontSize:(CGFloat *)actualFontSize forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
Run Code Online (Sandbox Code Playgroud)

因此,如果您使用的是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]];
Run Code Online (Sandbox Code Playgroud)

此时,size将包含绘制文本的大小,并且actualFontSize将是标签用于绘制的字体的实际大小.