首页 > 解决方案 > 添加换行符后 UITextView 高度变为可滚动

问题描述

我正在尝试设置 UITextview 的高度,并且在尝试格式化文本之前一切正常。

一个例子可能是 "/n" 或使用 Swift Multiline String Literals 的换行符。

之后,Textview 可以使用某种最大高度值滚动。

格式化文本会破坏“self.overViewTxt.contentSize.height”吗?

谢谢。

@IBOutlet weak var overViewTxt: UITextView!
@IBOutlet weak var overviewTxtHC: NSLayoutConstraint!

overViewTxt.text = "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, \n sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

overviewTxtHC.constant = self.overViewTxt.contentSize.height

或者

overViewTxt.text = """
    Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat\n  non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
    """

标签: swift

解决方案


尝试更新框架而不是使用约束:

overViewTxt.text = "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, \n sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda.Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

let overviewTxtHCSize = overviewTxtHC.intrinsicContentSize
overviewTxtHC.bounds.size = overviewTxtHCSize

推荐阅读