今天在浏览网站的时候,无意中看到别人的一个关于layoutSubViews的总结,感觉蛮实用的,特此记录下来方便翻阅。如有侵权之处,请联系立即删除。原文链接在此。内部作者的博客地址已经失效,所以指向了stackoverflow。
- 视图的
init方法不会触发layoutSubviews。 -
addSubView:会触发layoutSubviews的调用。包括父视图和它所有的子视图。(ps: 下面有评论指出这条可能有误,具体情形如下: 添加view1.2到view1,view1.2和view1的方法layoutSubviews会调用,而view1.1则不会调用该方法。view1.2和view1.1均为view1的子视图。) - 视图设置
frame且frame变化的时候会调用layoutSubviews。 - 滚动一个
UIScrollView会触发UIScrollView和他的父视图的layoutSubviews。 - 旋转设备会出发
viewController的根视图的layoutSubviews。(ps: 有评论指出:旋转设备只有在布局变化的时候才会调用该方法,如果仅仅是UIInterfaceOrientationLandscapeLeft转换为UIInterfaceOrientationLandscapeRight, 则不会调用。) - 调整一个视图的大小会触发它的父视图的
layoutSubviews。
希望可以为诸位的知识体系做个补充。









网友评论