• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用自动布局调整 super View 和所有 super View 的 sibling 的大小

[复制链接]
菜鸟教程小白 发表于 2022-12-12 17:59:03 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试管理屏幕上的 View ,以便所有 View 都根据 TextView 进行更新,该 TextView 根据输入的文本而增长。

在我的 Controller View 中,我有两个 subview 。我们称它们为 view1 和 view2。 View1 有一个 uitextview subview ,它根据输入的文本而增长和缩小。

我遇到的问题是 view1 和 view2 在打字时不会增长和缩小。 textView 底部垂直间距的约束常数已设置为距其父 View 10px。 view1 和 view2 之间的垂直间距设置为 0。这是 View 的可视化表示:

 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
|  -----------------  |
|        view1        |
 ---------------------
|                     |
|                     |
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
|                     |
|                     |
 ---------------------

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

 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
| |                 | |
| |                 | |
 ---------------------
|                     |
|                     |
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
|                     |
|                     |
 ---------------------

但理想的行为应该是这样的:

 ---------------------
|                     |
|  -----------------  |
| |   UITextView    | |
| |                 | |
| |                 | |
| |                 | |
| |                 | |
| |                 | |
|  -----------------  |
|        view1        |
 ---------------------
|                     |
|                     |
|        view2        |
|                     |
|                     |
|                     |
 ---------------------

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

我是否需要显式调用 setNeedsUpdateConstraints 或 updateConstraintsIfNeeded?如果有,在哪里?我尝试从 TextView 委托(delegate) textViewDidChange: 调用它,但没有任何帮助。

任何帮助将不胜感激。



Best Answer-推荐答案


我设法弄清楚了。

对于任何阅读此问题的人来说,我这样做的方式是编写我自己的 UITextView 子类,为其提供高度约束和一些委托(delegate)方法。

更改 TextView 的高度时,只需触发委托(delegate)方法(例如 textViewDidChangeHeight。然后,在委托(delegate)回调实现中,我只是在 View 上调用了 sizeToFit。

关于ios - 使用自动布局调整 super View 和所有 super View 的 sibling 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000482/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap