UIView的setNeedLayout layoutIfNeeded LayoutSubviews

转自:http://blog.youkuaiyun.com/meegomeego/article/details/39890385


-layoutSubviews     

1、initWithFrame初始化,frame的值不为CGRectZero时会调用。

2、addSubviews会触发

3、改变view的Frame会触发(父类)

4、滚动UIScrollView会触发layoutSubviews

5、旋转Screen会触发(父类)

-setNeedsLayout方法标记为重新需要布局,异步调用layoutIfNeeded布局,不立即调用,但LayoutSubviews一旦会触发

-layoutIfNeeded,如果有需要刷新的标记,立即调用[view setNeedLayout]。(如果没有标记,不调用)

重绘

-drawRect 重写方法,执行重绘任务。会在loadView和viewDidLoad 方法之后调用,所有可以在controller中赋值给view。

-setNeedDisplay 标记为需要重绘,异步调用drawRect

-setNeedDisplayInRect  标记为局部重绘



layoutSubviews对subviews重新布局

layoutSubviews方法调用先于drawRect

setNeedsLayout 在receiver标上需要重新布局标记(这个receiver是什么,在什么时候检查,懂的大神求解释),在runloop的下一个周期自动调用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值