回答

4

這是溶液

dispatch_async(dispatch_get_main_queue(), ^{ 
      yourLabel.numberOfLines = 0; 
      [yourLabel sizeToFit]; 


     }); 
+2

dispatch_async?啊。 –

+0

其工作在ios 8.1+與dispatch_async –

+0

它實際上工作..我不明白爲什麼,因爲這已經是主線程 –

1

一種完成此甚至更快的方法是通過設置UILabel的線路中斷模式爲「剪輯」和添加新行的固定量。

myLabel.lineBreakMode = NSLineBreakByClipping; 
myLabel.text = [displayString stringByAppendingString:@"\n\n\n\n"]; 

該解決方案爲大家將無法正常工作 - 在你的字符串的結尾,如果超過你顯示的行數特別是,如果你仍然想顯示「...」,你我們需要使用更長的一段代碼 - 但在很多情況下,這會爲您提供所需的內容。

你應該看看this blog也。而這個鏈接也可以幫助你Vertically align text to top within a UILabel

+0

幫助我解決這個問題的唯一答案,這個簡單的2行代碼。非常感謝! – Tom

+1

很高興幫助你@湯姆...乾杯。 –

0

在斯威夫特:在主線程

yourLabel.lineBreakMode = NSLineBreakMode.ByClipping 
yourLabel.text = yourString.stringByAppendingString("\n\n\n\n")