一行:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
上面的代码将调整你的文本的字体大小(例如)8试图适合你的文本在标签。
numberolines = 1是必选项。
多行:
对于numberolines > 1,有一个方法可以通过NSString的sizeWithFont来计算最终文本的大小:…UIKit添加方法,例如:
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
之后,你可以使用产生的lLabelSize来调整你的标签大小,例如(假设你只会改变标签的高度):
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
一行:
从iOS6开始,minimumFontSize已弃用。这条线
factLabel.minimumFontSize = 8.;
可更改为:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
iOS7
多行:
从iOS7开始,sizeWithFont不再使用。
多行大小写简化为:
factLabel.numberOfLines = 0;
factLabel.lineBreakMode = NSLineBreakByWordWrapping;
CGSize maximumLabelSize = CGSizeMake(factLabel.frame.size.width, CGFLOAT_MAX);
CGSize expectSize = [factLabel sizeThatFits:maximumLabelSize];
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, expectSize.width, expectSize.height);
iOS 13 (Swift 5):
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.5