iOS layout的相关方法:
layoutSubviews
layoutIfNeeded
setNeedsLayout
layoutSubviews
这个方法,默认没有做任何事情,需要子类进行重写 。 系统在很多时候会去调用这个方法:
1.初始化不会触发layoutSubviews,但是如果设置了不为CGRectZero的frame的时候就会触发。
2.addSubview会触发layoutSubviews
3.设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4.滚动一个UIScrollView会触发layoutSubviews
5.旋转Screen会触发父UIView上的layoutSubviews事件
6.改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件
setNeedsLayout
标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用
配合layoutIfNeeded立即更新
layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局
参考:http://www.jianshu.com/p/eb2c4bb4e3f1
备注:锐宁咨询 项目管理 工程项目管理平台 RELINK 甘特图 https://www.relink.cc
iOS布局方法详解
本文详细介绍了iOS中四个关键布局方法:layoutSubviews、setNeedsLayout、layoutIfNeeded及它们之间的关系。探讨了这些方法在不同场景下的触发条件,如初始化、添加子视图、修改frame等,并解释了它们如何协同工作来实现视图的布局。
712

被折叠的 条评论
为什么被折叠?



