首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用autolayout调整superview和所有superview兄弟姐妹的大小

使用autolayout调整superview和所有superview兄弟姐妹的大小
EN

Stack Overflow用户
提问于 2014-01-08 15:57:16
回答 1查看 485关注 0票数 2

我试图管理我的屏幕上的视图,以便根据文本视图更新所有视图,而文本视图的增长取决于输入的文本。

在我的控制器视图中,我有两个子视图。我们叫他们view1和view2。View1有一个uitextview子视图,它根据输入的文本不断增长和缩小。

我遇到的问题是,view1和view2在打字时不会增长和收缩。textView底部垂直间距的约束常数已从它的superview设置为10‘s。view1和view2之间的垂直间距设置为0。以下是视图的可视化表示:

代码语言:javascript
复制
 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
|  -----------------  |
|        view1        |
 ---------------------
|                     |
|                     |
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
|                     |
|                     |
 ---------------------

当我向textView添加文本时,我得到的结果是:

代码语言:javascript
复制
 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
| |                 | |
| |                 | |
 ---------------------
|                     |
|                     |
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
|                     |
|                     |
 ---------------------

但是,所希望的行为应该是类似于:

代码语言:javascript
复制
 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
| |                 | |
| |                 | |
| |                 | |
| |                 | |
| |                 | |
|  -----------------  |
|        view1        |
 ---------------------
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
 ---------------------

奇怪的是,一旦我添加了文本并按了submit (为了简单起见,没有添加到图表中),view1就会增长到正确的大小,就像view2一样,但在输入时不会增加。

我是否需要显式地调用setNeedsUpdateConstraints或updateConstraintsIfNeeded?如果是,在哪里?我尝试过从文本视图委托textViewDidChange调用它:但是没有任何帮助。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 11:49:35

我设法弄明白了。

对于任何有同样问题的读者来说,我这样做的方式是编写我自己的UITextView子类,给它一个高度约束和一些委托方法。

当更改文本视图的高度时,只需触发委托方法(例如textViewDidChangeHeight:)。然后,在委托回调实现中,我只是在视图上调用了sizeToFit。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21000482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档