我有一个自定义视图没有得到layoutSubview
动画期间的消息。
我有一个充满屏幕的视图。它在屏幕底部有一个自定义子视图,如果我更改导航栏的高度,它可以在 Interface Builder 中正确调整大小。layoutSubviews
在创建视图时调用,但不会再调用。我的子视图布局正确。如果我关闭通话状态栏,子视图layoutSubviews
根本没有被调用,即使主视图确实对其大小进行了动画调整。
什么情况下是layoutSubviews
真的打电话了?
I have autoresizesSubviews
set to NO
对于我的自定义视图。在 Interface Builder 中,我设置了顶部和底部支柱以及垂直箭头。
难题的另一部分是窗口必须成为关键:
[window makeKeyAndVisible];
否则子视图不会自动调整大小。
我有一个类似的问题,但对答案(或我在网上找到的任何答案)不满意,所以我在实践中进行了尝试,这就是我得到的:
-
init
不会导致layoutSubviews
到
被称为(废话)
-
addSubview:
causes
layoutSubviews
被称为
正在添加的视图,正在存在的视图
添加到(目标视图),并且所有
目标的子视图
- view
setFrame
智能呼叫layoutSubviews
在
仅设置了框架的视图
如果框架的尺寸参数是
不同的
- 滚动 UIScrollView
原因
layoutSubviews
被召唤
滚动视图及其超级视图
- 旋转设备仅调用
layoutSubview
在父视图上(
响应主视图控制器
看法)
- 调整视图大小将调用
layoutSubviews
在其超级视图上(重要的: 如果决定其大小的内容发生变化,具有固有内容大小的视图将重新调整大小;例如,更新 UILabel 上的文本将导致内在内容大小更新,从而调用layoutSubviews
在其超级视图上)
我的结果 -http://blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get- Called/ https://web.archive.org/web/*/blog.logichigh.com/2011/03/16/when-does-layoutsubviews-get-called/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)