![](/img/trans.png)
[英]Changing label to allow multiline doubles width of View in interface Builder
[英]iOS multiline label in Interface builder
如何在 iOS 的界面構建器中制作多行UILabel
? 我嘗試了UITextView
但它不太適合我的需要。
如何在 label 中添加多行(文本)?
您可以使用numberOfLines
屬性來定義 label 可以擁有的最大行數。 默認情況下,它是1
。 將其設置為0
意味着 label 將擁有無限行。
您可以在代碼中執行此操作:
textLabel.numberOfLines = 5 // for example
或者在界面生成器中:
點擊Control + Enter在 Interface Builder/Storyboard 的 UILabel 中添加一行。
謝謝蘋果維傑!
也可以調用 sizeToFit,像這樣:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
高度將被自動計算。
將 label 的寬度設置為小,然后使用 IB 將換行符設置為自動換行
或與這樣的代碼一起使用
我找到了解決方案。
只需添加以下代碼:
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
將動態文本信息的行數設置為零,當您的文本變化時這將很有用。
以編程方式(Swift 3)
var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
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
使用接口生成器
注意:不需要設置Minimum Font Scale
,但最好有一個最小比例因子以將文本適合 label 框架。
行數在 IB 中可見,Plain UILabels 將行字段設置為 0。它將根據為 label 提供的空間創建多行。
在 iOS7 (Xcode5) 中,您應該將 UILabel 的行設置為0
,以便在 storyboard 中進行無限多輸入。
最重要的是設置height of the UILabel
可以容納你要設置的輸入行。
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};
如果將 numberOfLines 屬性設置為 0,label 將自動調整到給定文本所需的行數。
我已經為此苦苦掙扎了很長時間。 我只是想讓我的 label 文本出現在第二行。 但無論我做什么,它只會溢出 UILabel 框。 對我來說,改變尺寸檢查器中的自動調整大小是有效的。 簡單的修復。
可能有人在尋找類似的東西時會發現它有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.