2012-07-05 61 views
3

我有一個UIlabel視圖,它允許顯示兩行字符串。但就我而言,只有一個長詞。無論我將換行符模式設置爲UILineBreakModeTailTruncation還是UILineBreakModeWordWrap,它總是將該單詞分成兩行。就像這樣: 「XXXXXX XX」 我想截斷它在第一線,像這樣: 「XXXX ......」用多條線截斷一個長詞的UILabel

有什麼辦法來實現這一點。 在大多數情況下,它應該允許顯示兩行字。

附加編輯: 以下圖爲例。前兩個標籤是我所期望的:一個長字可以被截斷成一行;多個短語可以用兩行顯示。 底部標籤當前發生。

enter image description here

+0

我說過,在其他一些情況下,它應該允許顯示兩行(多個短語可以顯示在兩行中)。只有一些罕見的情況,一個長字可能會被字符包裹成兩行,我只想用「...」在一行中顯示。 – yibuyiqu

+0

你想要什麼我沒有得到你的觀點呢? – Abhishek

+0

我想將文本顯示爲前兩張圖片。它可以將兩行中的多個單詞顯示爲右上圖像,並且還可以在一行中顯示一個長單詞作爲左上圖像。我不想要底部的圖像。 – yibuyiqu

回答

4

爲了做到你的要求,你需要找出是否有隻有一個字。如果有,請將行數設置爲1,並且自動縮小應該可以解決問題。如果不存在,則將行數設置爲0.

例如,

UILabel *label = [[UILabel alloc] init]; 
label.font = [UIFont systemFontOfSize:12.0]; 
label.adjustsFontSizeToFitWidth = YES; 
label.minimumScaleFactor = 0.8; 
label.text = NSLocalizedString(@"Information", @"E: 'Information'"); 
NSUInteger words = [label.text componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].count; 
label.numberOfLines = (words == 1) ? 1 : 0; 

斯威夫特3。0

let label = UILabel() 
label.font = UIFont.systemFont(ofSize: 12) 
label.adjustsFontSizeToFitWidth = true 
label.minimumScaleFactor = 0.8 
label.text = NSLocalizedString("Information", comment: "E: 'Information'") 
let words = label.text?.components(separatedBy: NSCharacterSet.whitespacesAndNewlines).count 
label.numberOfLines = words == 1 ? 1 : 0 
1

不要做任何事情線1 沒有中斷模式

集的字體大小與最小字體大小相同

看到圖像的

設定數量enter image description here

enter image description here

+0

謝謝你的回答,但不適合我的情況。請參閱我上面的評論。 – yibuyiqu

0

設置行數爲1或不設置默認行數爲1.行間斷模式爲UILineBreakModeTailTruncation ...並特別檢查標籤的寬度....不應該是如下更大的使用......

[lbl setFrame:CGRectMake:(10,10,50,30)]; 
    [lbl setLineBreakMode:UILineBreakModeTailTruncation]; 
    [lbl setNumberOfLines:1]; 

也許這將幫助你......

+0

謝謝你回答,但不適合我的情況。請參閱我上面的評論。 – yibuyiqu

0

通過使標籤更廣泛的就可以解決這個問題。

[lbl setFrame:CGRectMake:(xPosition,yPosition,heightValue,21)]; 

[lbl setNumberOfLines:1];

其中

的xPosition & yPosition值是您爲您的標籤設置的值。

heightValue是一個適當的值,它將在視圖中正確對齊您的標籤。

下去......

+0

謝謝你的回答,但不適合我的情況。請參閱我上面的評論。 – yibuyiqu