2011-07-02 21 views
99

如何在iOS的界面生成器中製作多行UILabel?我嘗試了UITextView,但它不適合我的需求。接口生成器中的iOS多行標籤

如何在標籤中添加多行(文本)?標籤的

+0

你能解釋爲什麼ID不適合您的需求?具有隻讀的TextView與多行標籤相同。 – Shreesh

+0

似乎沒有突出顯示文本顏色屬性。 –

+4

對於訪問此問題的其他人,不要按照接受的將行設置爲5或'n'的答案。而是將其設置爲0(無窮大排序)。查看下面的vijay的答案。 – GoodSp33d

回答

149

您必須分配numberOfLines財產。您可以通過代碼來做到這一點:

textLabel.numberOfLines = 5; // for example 

或通過界面生成器: enter image description here

+0

我試過了,它在我寫標籤時起作用,但是當我按下回車鍵接受它時,只有一個接一個線。 –

+3

什麼是你的標籤的寬度? – akashivskyy

+5

好吧,我現在知道了,增加了它的高度。謝謝! –

10

設定寬度爲u需要小然後使用IB設定換行到字包裹

或代碼使用這樣

我發現了一個解決方案。

一隻是必須添加以下代碼:

textLabel.lineBreakMode = NSLineBreakByWordWrapping; 
textLabel.numberOfLines = 0; 
44

感謝AppleVijay!

也叫sizeToFit,像這樣:

label.lineBreakMode = UILineBreakModeWordWrap; 
label.numberOfLines = 0; 
[label sizeToFit]; 

高度將自動計算。

+11

注意:UILineBreakModeWordWrap從iOS6開始已棄用。使用[label setLineBreakMode:NSLineBreakWordWrapping];代替。 –

+5

缺少「By」。 label.lineBreakMode = NSLineBreakByWordWrapping – user1872384

+0

以及Xcode檢測丟失對我來說; ;-) – shashwat

86

點擊控制 + 輸入在Interface Builder/Storyboard中的UILabel中添加一行。

+2

謝謝,這正是我想要做的:) –

+0

這應該是解決方案! – SunnySonic

+14

不錯的一個。但「Q」沒有必要我猜 – Rendel

1

在iOS7(Xcode5)中,您將UILabel的行設置爲0,以便在故事板中無限次輸入。
最重要的是設置height of the UILabel可以容納你要設置的輸入線。

0
textLabel.lineBreakMode = UILineBreakModeWordWrap; 

textLabel.numberOfLines = 0; 

CGSize size = [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"] sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(188, CGFLOAT_MAX) 
                    lineBreakMode:NSLineBreakByTruncatingTail]; 

textLabel.frame = (CGRect){.origin = cell.lblNewsDescription.frame.origin, .size = size}; 
-2

對於X-代碼7.2

  1. - 選擇的UILabel

  2. - 屬性檢查

  3. - 文本 - 選擇歸於

之後是你可以看到更多的屬性,你可以添加到你的標籤,其中你還可以找到號。這使您的標籤多行。動態文本信息的行

X-Code Image for a multiline UILabel

+0

使用普通UILabels在IB中可以看到行數。 –

1

斯威夫特3+
集數爲零,它會在你的文字都存在不同是有用的。

var label = UILabel() 
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder" 
label.text = stringValue 
label.numberOfLines = 0 
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord 
label.minimumScaleFactor = 0.8 . // It is not required but nice to have a minimum scale factor to fit text into label frame 

enter image description here