ios layoutSubviews, layoutIfNeed

2019-04-24  本文已影响0人  _秃头少女_
layoutSubviews:

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

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

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

setNeedsLayout:

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

上一篇下一篇

猜你喜欢

热点阅读