添加换行符后,UITextView的高度更改为可滚动

时间:2019-01-22 04:05:17

标签: swift

我正在尝试设置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.
    """

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

UITextView具有自动计算高度的独特属性。您无需采用约束IBOutlet或不提供任何固定的HEIGHT约束,而无需禁用它的scrolling属性,然后分配将自动变为其大小的任何文本。

注意:请确保您设置适当的约束条件,即顶部,底部,前导和尾随。