単線:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
上記のコードは、テキストのフォントサイズを(たとえば)8
テキストをラベル内に収まるように調整します。
numberOfLines = 1
必須です。
複数行:
numberOfLines > 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