我試圖設置約束來獲取靜態表格視圖單元格中的多行標籤,但顯然這對我不起作用,標籤仍然在單行中。我已將numberOfLines屬性設置爲0,並將高度約束設置爲大於或等於。我正在爲tableView:heightForRowAtIndexPath
正確設置單元格的高度。請查看我的屏幕截圖以查看IB中的設置。帶自動佈局的多行UILabel不起作用
回答
在你上面的評論中提到您目前沒有設定preferredMaxLayoutWidth
。這個屬性告訴你的標籤,它應該在該屬性值的寬度上佈置它的文本。在UILabel.h:
如果不爲零,確定爲-intrinsicContentSize多標籤
換句話說,當這個被使用,如果不設置,標籤的內在內容的大小是什麼寬度標籤需要繪製文本。如果將此屬性設置爲標籤的邊界,它將開始在下一行繪製(否則,如果numberOfLines
爲0,則會關閉文本)。
就你而言,我可能會在tableView:willDisplayCell:forRowAtIndexPath:
那樣做。
numberOfLines = 0是無限數量的行,所以除非他有不同的自動換行屬性,否則不應該關閉文本。 – FrostRocket
我(我想)我的意思是說:如果您沒有將'intrinsicContentSize'設置爲標籤的邊界,並且'numberOfLines'爲0,則會關閉文本。爲了清晰起見,我更新了答案。 –
您可以在代碼中設置preferredMaxLayoutWidth
,但在故事板中設計用戶界面時,仍然會看到一條長邊的單行標籤,該標籤在邊緣處被切斷。另一種方法是使用Option-Return
在故事板內手動插入文本中任何位置的換行符。然後,您只需將行數設置爲大於文字的大小即可。然後選擇你的標籤,點擊Cmd-=
。這將計算您的標籤的內在內容大小,並將換行符恰好放在您想要的位置。
從理論上講,我認爲設置preferredMaxLayoutWidth
是更正確的方法,尤其是使用Autolayout。不過,我發現使用上述方法更實用,因爲它可以讓您在設計時看到故事板中的佈局,並且可以完全控制換行符。對於文本不經常變化的標籤,這通常會更好。如果您正在動態更改標籤文本,則設置preferredMaxLayoutWidth
是首選方式。
- 1. 自動佈局不工作的多的UILabel
- 2. UIView addSubview自動佈局不起作用
- 3. 自動佈局方向不起作用
- 4. 自動佈局約束不起作用
- 5. 帶換行符和自動佈局的UILabel
- 6. 更新未知大小的多行UILabel(自動佈局)的preferredMaxLayoutWidth
- 7. iOS:多行uilabel只顯示一行自動佈局
- 8. UILabel未使用自動佈局調整
- 9. UILabel自動佈局高度動畫
- 10. 自定義佈局AlertDialog不起作用?
- 11. UILabel不在UIView內部設置動畫,使用自動佈局
- 12. 自動佈局不工作?
- 13. 佈局滾動不起作用
- 14. UITableCell,支持自動佈局配置的多的UILabel被截斷
- 15. XML行佈局不起作用
- 16. 動態更改的UILabel寬度不與自動佈局
- 17. 帶自動滾動的UILabel
- 18. UICollectionViewCell自動佈局安裝的視圖不起作用
- 19. 爲什麼我的自動佈局約束不起作用?
- 20. jgraph佈局不起作用
- 21. 佈局不起作用onTouch()
- 22. Laravel佈局不起作用
- 23. adwhirl佈局不起作用
- 24. 沒有自動佈局的UILabel的自動幀高度
- 25. iPhone佈局不使用自動佈局
- 26. 爲什麼自動佈局限制不起作用?
- 27. 更新約束值在自動佈局中不起作用
- 28. 自動佈局列在Bootstrap中不起作用
- 29. UITableViewCell單元重用和UILabel自動佈局動態調整
- 30. 使用自動佈局動畫UILabel寬度
什麼不適合它? –
@ScottBerrevoets Sry,我更新了我的問題。標籤仍然在一行中 – gpichler
地址是否足夠長以適合兩行?你設置了'preferredMaxLayoutWidth'嗎? –