2013-10-13 58 views
10

我有一個單元格與多行UILabels,但是當文本的標籤不適合框架,沒有點顯示。我怎樣才能解決這個問題?如何添加點到UILabel如果文本不適合框架

+2

您是否真的需要爲此添加賞金。這類問題有數百個答案。 http://stackoverflow.com/questions/11302165/uilabel-linebreakmode-clip-doesnt-clip-text和https://www.google.co.uk/search?q=UILabel+lineBreakMode+&ie=utf-8&oe= utf-8&rls = org.mozilla:en-US:official&client = firefox -a&gws_rd = cr&ei = cQiiUsPpBKTK0QXZuoHoDA簡單的谷歌搜索。 – Popeye

+0

@Popeye我試​​圖根據以前的答案解決這個問題,但它並沒有幫助我。 PS:我的標籤屬性「numberOfLines」設置爲「2」,如果它等於「1」,它的作品。 –

+0

numberOfLines默認爲1。如果您不知道確切的numberOfLines並使用UILable的sizeToFit方法,請嘗試將其設置爲0。 – iProgrammer

回答

30

你試過嗎?

yourLabel.adjustsFontSizeToFitWidth = NO; 
yourLabel.lineBreakMode = NSLineBreakByTruncatingTail; 

此前iOS6的使用UILineBreakModeTailTruncation

+0

是的,我嘗試過。) –

+2

我認爲正確的選項是'NSLineBreakByTruncatingTail'。您在答案中提到的那個已被棄用。 – Macondo2Seattle

+0

我試過使用NSLineBreakByTruncatingTail,而不是UILineBreakModeTailTruncation。 –

2

如果linebreakmode不起作用華陽,另一種選擇是去實際計算您的字符串是要採取的長度,如果它會比標籤尺寸長,自己添加「...」。

你將不得不用下面的代碼來處理多行播放(但這個想法是相似的)

例如,就拿你的標籤(例如detailLabel)

UILabel* detailLabel = cell.detailTextLabel; 
CGSize expectedDetailLabelSize = [detailLabel.text sizeWithFont:detailLabel.font 
              constrainedToSize:maximumLabelSize 
               lineBreakMode:detailLabel.lineBreakMode]; 
+0

我知道這個解決方案,但同時我希望有更簡單的方法。)Swift 4中的 –

3

爲SWIFT 2.0這將是

yourLabel.adjustsFontSizeToFitWidth = false; 
yourLabel.lineBreakMode = NSLineBreakMode.ByTruncatingTail 
+0

只需要給'b'小一點。 like(yourLabel.adjustsFontSizeToFitWidth = false; yourLabel.lineBreakMode = NSLineBreakMode.byTruncatingTail) –

0

對於SWIFT 3+

label.adjustsFontSizeToFitWidth = false; 
label.lineBreakMode = NSLineBreakMode.byTruncatingTail;