Tek satır:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
Yukarıdaki kod, 8
metninizi etiketin içine sığdırmaya çalışarak metninizin yazı tipi boyutunu aşağı (örneğin) ayarlayacaktır .
numberOfLines = 1
zorunludur.
Birden çok satır:
For numberOfLines > 1
yoluyla nihai metnin boyutunu anlamaya bir yöntem yoktur NSString en sizeWithFont: ... UIKit ekleme yöntemleri, örneğin:
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
Bundan sonra, sonuçta kullanarak etiketinizi yeniden boyutlandırabilirsiniz lLabelSize
, örneğin (yalnızca etiketin yüksekliğini değiştireceğinizi varsayarak):
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
Tek satır:
İOS6'dan başlayarak minimumFontSize
kullanımdan kaldırıldı. Çizgi
factLabel.minimumFontSize = 8.;
şu şekilde değiştirilebilir:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
iOS7
Birden çok satır:
İOS7 ile başlayarak sizeWithFont
kullanımdan kaldırılıyor. Çok satırlı kasa aşağıdakilere indirgenir:
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