แถวเดียว:
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
โค้ดด้านบนจะปรับขนาดตัวอักษรของข้อความของคุณให้เป็น (ตัวอย่าง) 8
พยายามปรับให้พอดีกับข้อความของคุณภายในฉลาก
numberOfLines = 1
เป็นสิ่งจำเป็น
หลายสาย:
สำหรับnumberOfLines > 1
วิธีการหาขนาดของข้อความสุดท้ายผ่านขนาดของ NSStringWithFont: ...วิธีการเติม 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;
ไอโอเอส 7
หลายสาย:
เริ่มต้นด้วย 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