Dòng đơn:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
Đoạn mã trên sẽ điều chỉnh kích thước phông chữ của văn bản của bạn xuống (ví dụ) 8
cố gắng khớp văn bản của bạn trong nhãn.
numberOfLines = 1
là bắt buộc.
Nhiều dòng:
Để numberOfLines > 1
có một phương pháp để tìm ra kích thước của văn bản cuối cùng thông qua size của NSStringWithFont: ... Các phương thức bổ sung UIKit , ví dụ:
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
Sau đó, bạn chỉ có thể thay đổi kích thước nhãn của mình bằng kết quả lLabelSize
, ví dụ (giả sử rằng bạn sẽ chỉ thay đổi chiều cao của nhãn):
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
hệ điều hanh 6
Dòng đơn:
Bắt đầu với iOS6, minimumFontSize
đã không được chấp nhận. Dòng
factLabel.minimumFontSize = 8.;
có thể thay đổi thành:
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
IOS 7
Nhiều dòng:
Bắt đầu với iOS7, sizeWithFont
trở nên không dùng nữa. Trường hợp đa dòng được giảm xuống:
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