UITextView:达到固定宽度时自动断行

时间:2017-11-15 14:10:31

标签: swift dynamic view width uitextview

我正在处理一个包含UITextView的视图。估计内容的正确高度可以正常工作,但是当连续输入时,内容会在边框上水平增长。看起来像这样:

enter image description here

是否有任何方便的解决方案在到达时通过自动布局自动断开线,定义最大宽度?

2 个答案:

答案 0 :(得分:0)

如果要修改字符数或行数限制,可以通过UITextView委托实施名为func textView(UITextView, shouldChangeTextIn: NSRange, replacementText: String)的方法

答案 1 :(得分:0)

我提出的解决方案是一种非常简单的方法:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    let size = textView.sizeThatFits(textView.frame.size)
    if size.width >= self.maxTextViewWidth {
        let subString = textView.text.suffix(1)
        textView.text.removeLast(1)
        textView.text.append(contentsOf: "\n" +  subString)
    }

    return true
}