AutoLayout调用周期和时机

1.setNeedsLayout:

告知页面需要更新,但是不会立即更新,执行后会立刻调用layoutSubviews方法;

2.layoutIfNeeded:

告知页面布局立刻更新,所以一般都会和setNeedsLayout一起使用.如果希望立即生成新的frame需要调用此方法,利用这点一般布局动画可以在更新布局后直接使用这个方法让g动画生效;

3. layoutSubviews:系统重写布局:

调用的时机:
3.1.直接调用[self setNeedsLayout];(这个在上面苹果官方文档里有说明)
3.2.addSubview的时候。=>当添加子控件的时候,不管子控件有没有尺寸都会调用
3.3.当view的size发生改变的时候。
=>当size改变的时候调用一次(size每次都不同,如果size相同就不会调用)
3.4.滑动UIScrollView的时候。
3.5.旋转Screen会触发父UIView上的layoutSubviews事件。
注意:当view的size的值为0的时候,addSubview也不会调用layoutSubviews。当要给这个view添加子控件的时候不管他的size有没有值都会调用===>初始化,当size不为0的时候调用一次,当size为0的时候不会调用(在任何方法里面都不会调用)

4.setNeedsUpdateConstraints:

告知需要更细约束,但是不会立刻开始,系统然后调用updateConstraints;

5.updateConstraintsIfNeeded:

告知立刻更新约束,系统立即调用updateConstraints;

6.updateConstraints:

系统更新约束(苹果推荐,约束,增加和修改放在此方法种).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值