Garis tunggal:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
Kode di atas akan menyesuaikan ukuran font teks Anda ke (misalnya) 8
mencoba menyesuaikan teks Anda di dalam label.
numberOfLines = 1
wajib.
Beberapa baris:
Karena numberOfLines > 1
ada metode untuk mengetahui ukuran teks akhir melalui ukuran NSStringWithFont: ... Metode penambahan UIKit , misalnya:
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
Setelah itu Anda dapat mengubah ukuran label menggunakan hasil lLabelSize
, misalnya (dengan asumsi Anda hanya akan mengubah tinggi label):
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
Garis tunggal:
Dimulai dengan iOS6, minimumFontSize
telah ditinggalkan. Garis
factLabel.minimumFontSize = 8.;
dapat diubah menjadi:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
IOS 7
Beberapa baris:
Mulai dengan iOS7, sizeWithFont
menjadi usang. Kasing multiline dikurangi menjadi:
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