我有一個內容和幀大小等於348的UITextView,但是隻要文本寬度超過338.61就會出現換行。有誰知道爲什麼會發生這種情況?我怎樣才能訪問UITextView動態地用於換行的寬度?UITextView Word Wrapping意外的行爲
2
A
回答
7
從iOS 7開始,是的。這是textContainerInset
和lineFragmentPadding
的組合。
UITextView *textView = ...;
CGFloat wrappingWidth = textView.bounds.size.width - (textView.textContainerInset.left + textView.textContainerInset.right + 2 * textView.textContainer.lineFragmentPadding);
這是一個很好的值得了解。您可以在boundingRectWithSize:
呼叫使用它,例如:
CGRect boundingRect = [text boundingRectWithSize:CGSizeMake(wrappingWidth, CGFLOAT_MAX)
options:NSStringDrawingUsesLineFragmentOrigin // this is important
attributes:@{ NSFontAttributeName: textView.font } // and any other attributes of your text
context:nil];
還爽的是,你可以設置textContainerInset
和lineFragmentPadding
,所以如果你想提高這個還是有UITextView
與無插圖渲染(所以它例如,匹配一個UILabel
),你可以。
0
上面的答案沒有錯,但我一直在研究UITextView的單詞包裝行爲,並發現儘管可以調整textview的contentSize和textContainer的相應大小,但另一種方法是更改文本換行位置(使用自動佈局時)是將SuperView的尾部空間變爲負值。這將允許用戶將文字包裝功能向外推到右側。尚未完成研究,但此提示應該有助於任何人尋求更好地控制UITextView文字包裝行爲。
一旦我完成後會發布代碼,但現在調整UITextView的拖尾約束將移動單詞/字符換行的最右邊位置。
相關問題
- 1. Yii2 Kartik GridView Word-Wrapping
- 2. Multiline TextBox with custom word wrapping
- 3. Word Wrapping在JTextArea中不起作用
- 4. 意外的行爲
- 5. 意外的行爲()
- 6. 意外的行爲()
- 7. 意外行爲
- 8. 意外行爲
- 9. 意外行爲
- 10. 意外行爲()
- 11. 意外行爲
- 12. 意外行爲
- 13. 意外行爲
- 14. 意外行爲
- 15. 意外行爲
- 16. 意外行爲
- 17. 意外行爲
- 18. 意外行爲
- 19. 意外pyparsing行爲
- 20. 意外in_array()行爲
- 21. WC_LISTVIEW意外行爲
- 22. dynamic_pointer_cast意外行爲
- 23. Cufon.refresh意外行爲
- 24. 意外pandas.Series.replace()行爲
- 25. 意外行爲list.append
- 26. $ watchGroup意外行爲
- 27. 意外行爲:左
- 28. 意外行爲ThreadPool.QueueUserWorkItem
- 29. 意外行爲NSMutableOrderedSet
- 30. 意外Class.getMethod行爲
非常感謝。它確實有幫助。我無法在其他地方找到這個。 – neo