根据行数动态更改文本视图的高度

时间:2019-05-23 16:56:01

标签: ios swift

我正在根据文本视图中的行数动态更改文本视图的高度。我希望文本视图在第六行之后开始增加高度。我当前的实现方式导致文本视图的高度不断增加,因为行数始终大于以前的行数。我还希望在删除行时缩小文本视图:

func textViewDidChange(_ textView: UITextView) {

   let lineCount = numberOfLines(textView: textView)

      if lineCount > previousLineCount {
            previousLineCount = lineCount - 1
      }

      print("previous number of lines: \(previousLineCount) current number of lines: \(lineCount)" )

      if lineCount > 6 && lineCount > previousLineCount {
           self.layoutConstraint.constant += 4
      }
}

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

鉴于您添加前导,尾随,顶部并链接了您可以执行的高度限制

func textViewDidChange(_ textView: UITextView) { 
   self.heightConstraint.constant = textView.contentSize.height
   self.view.layoutIfNeeded()
}

答案 1 :(得分:0)

为什么不呢?

textView.sizeToFit()

不要忘记在故事板或以下内容中禁用滚动显示:

textView.scrollEnabled = false