我试图管理我的屏幕上的视图,以便根据文本视图更新所有视图,而文本视图的增长取决于输入的文本。
在我的控制器视图中,我有两个子视图。我们叫他们view1和view2。View1有一个uitextview子视图,它根据输入的文本不断增长和缩小。
我遇到的问题是,view1和view2在打字时不会增长和收缩。textView底部垂直间距的约束常数已从它的superview设置为10‘s。view1和view2之间的垂直间距设置为0。以下是视图的可视化表示:
---------------------
| |
| ----------------- |
| | UITextView | |
| ----------------- |
| view1 |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------当我向textView添加文本时,我得到的结果是:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
---------------------
| |
| |
| |
| |
| view2 |
| |
| |
| |
| |
| |
---------------------但是,所希望的行为应该是类似于:
---------------------
| |
| ----------------- |
| | UITextView | |
| | | |
| | | |
| | | |
| | | |
| | | |
| ----------------- |
| view1 |
---------------------
| |
| |
| view2 |
| |
| |
| |
---------------------奇怪的是,一旦我添加了文本并按了submit (为了简单起见,没有添加到图表中),view1就会增长到正确的大小,就像view2一样,但在输入时不会增加。
我是否需要显式地调用setNeedsUpdateConstraints或updateConstraintsIfNeeded?如果是,在哪里?我尝试过从文本视图委托textViewDidChange调用它:但是没有任何帮助。
任何帮助都将不胜感激。
发布于 2014-01-22 11:49:35
我设法弄明白了。
对于任何有同样问题的读者来说,我这样做的方式是编写我自己的UITextView子类,给它一个高度约束和一些委托方法。
当更改文本视图的高度时,只需触发委托方法(例如textViewDidChangeHeight:)。然后,在委托回调实现中,我只是在视图上调用了sizeToFit。
https://stackoverflow.com/questions/21000482
复制相似问题