如何随着textView的高度增加动态地改变textView的超级视图高度

问题描述:

我的屏幕底部有一个textView,它是containerView的子视图。这是聊天应用程序的文本输入部分。我想知道如何增加textView的容器视图的大小随着文本视图大小的增加。我正在使用自动布局。我已经使用下面的textView委托方法来调整textView的大小,它似乎工作正常。但无论我尝试什么,容器视图都不会改变大小。谢谢。如何随着textView的高度增加动态地改变textView的超级视图高度

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 
    messageTextView.frame.size.height = messageTextView.contentSize.height 
    return true 
} 
+0

尝试messageTextView.sizeToFit() –

+0

嗨。谢谢。我在上面的方法中尝试了这一点,但它没有改变任何东西。 – alionthego

+0

当然,尝试添加messageTextView.layoutIfNeeded()后sizeToFit() –

我必须为我的作品一样FUNC:

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool { 

    var height = self.noteValueLabel!.contentSize; 
    textView.sizeToFit(); 

     super.frame.size.height+=textView.frame.maxY - super.frame.height + 3.0; 
    } 

它为我工作,当noteValueLabel是UITextView的 和super.frame.size是你messageTextView

+0

我刚试过这个,它适用于超视图。大小似乎如预期的那样增加。但现在我的textView没有增加。我添加了上面的代码。 – alionthego

+0

,这是行不通的。 textView大小保持不变。我想知道这是否是我在故事板上的限制。目前我的textview的高度是> = 50.但它仍然在50. – alionthego

+0

我想这是约束,我没有使用它们。不使用故事板它只是让一切都变得复杂得多 无论如何,无法帮助的比我想象的更多,抱歉(: –

好的。我通过不把textView放在另一个视图中解决了这个问题。我仍然有两个观点在同一个位置,但他们都只是主视图的子视图。没有一个在另一个里面。然后通过textView的contentSize.height更改每个视图的高度,这很好。