UIStackView内的UITextview

use*_*811 9 iphone uitextview ios autolayout uistackview

我在UIStackView中添加了我的UITextView.

但我的textview不是Multiline.

自动布局如下所示:

在此输入图像描述

根据Image,它只需1行.根据图像显示为帧外的textview框架.

的UITextView

在此输入图像描述 在此输入图像描述

UIStackView

在此输入图像描述

Irf*_*fan 23

问题是,你有固定的heightUIStackview给予顶部底部的约束.

  1. 删除底部约束

    在此输入图像描述

禁用textview滚动.

使textview委托给自己并实现textViewDidChange

迅速

func textViewDidChange(_ textView: UITextView) {
    view.layoutIfNeeded()
}
Run Code Online (Sandbox Code Playgroud)

目标C:

-(void)textViewDidChange:(UITextView *)textView {
    [self.view layoutIfNeeded];
}
Run Code Online (Sandbox Code Playgroud)

确保调用此方法.

现在,您的stackview应该随着textview一起增长到多行.

那么你的textview不是多行的原因是因为你已经修正了高度.所以它永远不会是多线的.

查看GIF:

在此输入图像描述

  • 如果堆栈视图不是最后一个视图怎么办?例如,您不能删除底部约束,因为您需要与较低位置的视图有间距。 (2认同)

Cla*_*lis 5

只要您的堆栈视图受到良好约束,如果将设置isScrollEnabledfalseon UITextView,它就可以在堆栈视图中调整自身大小。

  • 你帮助我又摆脱了冒名顶替综合症。谢谢。 (2认同)