UITextView具有最大宽度,无限高度

时间:2015-12-16 10:03:02

标签: ios layout uitextview

背景

我正在努力完成一些应该非常简单的事情,我还没有发现任何问题/答案,坦白说我不想通过整个TextKit来完成实现这一点。所以,如果有人碰巧之前已经这样做了,并且可以提供指针,那就太好了。

问题

我需要一个文本视图:

  1. 以编程方式创建并放置在用户点按的位置
  2. 从零宽度开始,并在用户输入文本时水平增长
  3. 当用户点击返回键时,也会垂直增长以容纳任何新行
  4. 当宽度达到预设的最大值时,还会添加换行符。
  5. 我有这段代码:

    func textViewDidChange(textView: UITextView)
    {
        let text = textView.text
    
        let freeSize = (text as NSString).sizeWithAttributes([NSFontAttributeName : textView.font!])
    
        var width = freeSize.width > maximumTextViewWidth ? maximumTextViewWidth : freeSize.width
    
        width += (textView.textContainerInset.left + textView.textContainerInset.right)
    
        let newSize = textView.sizeThatFits(CGSize(width: width, height: CGFloat.max))
    
        var newFrame = textView.frame
    
        newFrame.size = newSize
    
        textView.frame = newFrame;
    }
    

    ...然而,文本视图"中断"在每两个左右的字符之后,在达到最大预设宽度之前很久,好像宽度不能很好地赶上显示的文字。

    我在实例化时尝试将文本视图的textContainerInset属性设置为零,但我仍然在开头时获得额外的换行符。

0 个答案:

没有答案