转自: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的下一个周期自动调用