ios layoutSubviews, layoutIfNeeded, setNeedsLayout

layoutSubviews:

不是供用户调用的,而是系统自动调用的,我们能做的就是重写该方法.

    1   调用 addSubview 方法时会执行该方法。
    2   设置并改变子视图的frame属性时会触发该方法。
    3   滑动UIScrollView及继承与UIScrollView的控件时会触发该方法。
    4   旋转屏幕时,会触发父视图的layoutSubviews方法。
    5   设置并改变视图的frame属性时会触发父视图的layoutSubviews方法。
layoutIfNeeded:

立即布局子视图,使用这个方法可以在系统绘制视图之前强制(重新)布局子视图。这个方法将从当前视图开始布局当前视图树之下的所有子视图。

setNeedsLayout:

调用之后不会立即更新布局(在当前布局周期发送setNeedsLayout消息是无效的,直到下一个布局周期才会触发布局更新。)当你想要调整子视图的布局时,你可以在应用的主线程调用该方法。这个方法将记录布局请求,并立即返回。由于该方法不强制立即更新,而是等到下一个更新周期,所以你可以在当前的无效周期内添加多个多个视图的布局,等到下一个周期同一更新。这么做通常可以获得更好的性能。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容