我正在尝试管理屏幕上的视图,以便所有视图都根据输入的文本不断增长的文本视图进行更新。
在控制器的视图上,我有两个子视图。我们称它们为view1和view2。View1具有一个uitextview子视图,该子视图根据输入的文本而增长和缩小。
我遇到的问题是,键入时view1和view2不会增大和缩小。textView底部到底部的垂直间距的约束常数已从其superview设置为10px。view1和view2之间的垂直间距设置为0。这是视图的直观表示:
---------------------
| |
| ----------------- |
| | UITextView | |
| ----------------- |
| view1 |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------
将文本添加到textView时得到的结果是:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------
但是所需的行为将类似于以下内容:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
| | | |
| | | |
| | | |
| ----------------- |
| view1 |
---------------------
| |
| |
| view2 |
| |
| |
| |
---------------------
奇怪的是,一旦我添加了文本并按下了提交(为简单起见,未将其添加到图表中),view1就会增长到正确的大小,view2也会增长到正确的大小,但键入时却不会。
我是否需要显式调用setNeedsUpdateConstraints或updateConstraintsIfNeeded?如果是这样,在哪里?我尝试从文本视图委托textViewDidChange调用它:但是没有任何帮助。
任何帮助将非常感激。
我设法弄清楚了。
对于阅读此书的人来说,遇到同样的问题,我的方法是编写自己的UITextView子类,以提供高度限制和一些委托方法。
更改文本视图的高度时,只需触发委托方法(例如textViewDidChangeHeight :)。然后,在委托回调实现中,我仅在视图上调用了sizeToFit。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句