gpt4 book ai didi

ios - 什么时候调用layoutSubviews?

转载 作者:IT王子 更新时间:2023-10-29 07:25:19 25 4
gpt4 key购买 nike

我有一个自定义 View ,它在动画期间没有收到 layoutSubview 消息。

我有一个填满屏幕的 View 。它在屏幕底部有一个自定义 subview ,如果我更改导航栏的高度,它会在 Interface Builder 中正确调整大小。 layoutSubviews 在创建 View 时调用,但不会再次调用。我的 subview 布局正确。如果我关闭通话中的状态栏,则 subview 的 layoutSubviews 根本不会被调用,即使主视图确实为其调整大小设置了动画。

layoutSubviews在什么情况下才真正被调用?

我将自定义 View 的 autoresizesSubviews 设置为 NO。在 Interface Builder 中,我设置了顶部和底部支柱以及垂直箭头集。


难题的另一部分是必须将窗口设为键:

[window makeKeyAndVisible];

否则 subview 不会自动调整大小。

最佳答案

我有一个类似的问题,但对答案(或我能在网上找到的任何答案)都不满意,所以我在实践中尝试了一下,结果如下:

  • init 不会导致 layoutSubviews被称为(duh)
  • addSubview: 原因layoutSubviews 被调用正在添加的 View ,正在添加的 View 添加到(目标 View ),以及所有目标的 subview
  • 查看setFrame智能调用 layoutSubviews仅设置框架的 View 如果框架的大小参数是不同
  • 滚动 UIScrollView导致 layoutSubviews 被调用scrollView 及其父 View
  • 旋转设备只会调用layoutSubview 在父 View 上(响应 viewControllers 主要查看)
  • 调整 View 的大小将在其父 View 上调用 layoutSubviews(重要: 如果决定其大小的内容发生变化,则具有固有内容大小的 View 将重新调整大小; 例如,更新 UILabel 上的文本将导致更新内在内容大小,从而在其父 View 上调用 layoutSubviews)

我的结果 - http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/

关于ios - 什么时候调用layoutSubviews?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com