讓 UITextView 的高度等於文字內容的高度

text view 由於會上下捲動,因此正常情況下,它的高度無法像 label 一樣自動長成剛好容納內容的高度。

比方如下圖所示,text view 設了上面,左邊,右邊的間距,此時由於 text view 可以捲動,因此它無法決定它要長多高。

錯誤訊息顯示 Need constraint for: height。

有方法讓 text view 不正常,學 label 一樣自動長高嗎 ? 當然有 ! 只要將 text view 的 Scrolling Enabled 取消,讓它像 label 一樣不會捲動即可。

iOS App 常見的聊天訊息,也滿適合搭配 text view,不管是單行的"我要去洗澡了",或是多行的告白情話,都可以呈現。如果想要更好的效果,還可以透過 text view 的 textContainerInset 調整文字上下左右的間距。

textView.textContainerInset = .init(top: 10, left: 10, bottom: 10, right: 10)
右邊的 text view 利用 textContainerInset 調整文字上下左右的間距

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com