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ụ) 8cố gắng khớp văn bản của bạn trong nhãn.
numberOfLines = 1là bắt buộc.
Nhiều dòng:
Để numberOfLines > 1có 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, sizeWithFonttrở 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