我有一個UILabel,通常需要顯示一個或兩個單詞。UILabel adjustFont with multiline
很多時候,其中一個單詞不適合放在一行中,所以我想減小字體大小以使每個單詞至少適合一行(不能按字符分隔)。
使用http://beckyhansmeyer.com/2015/04/09/autoshrinking-text-in-a-multiline-uilabel/
self.numberOfLines = 2;
self.lineBreakMode = NSLineBreakByTruncatingTail;
self.adjustsFontSizeToFitWidth = YES;
self.minimumScaleFactor = 0.65;
中描述的技術,我發現,它起着很好當第二個詞不適合在只有一條線路。
我設法解決的一個詞這樣的情況:
-(void)setText:(NSString *)text
{
self.numberOfLines = [text componentsSeparatedByString:@" "].count > 1 ? 2 : 1;
[super setText:text];
}
但我怎麼能解決其中的第一個單詞不適合的情況下?有任何想法嗎?
嘗試使用自動佈局可以輕鬆解決你的問題設置'self.lineBreakMode = NSLineBreakByWordWrapping' – Jelly
它不會在任何情況下工作... – jdev
。 –