setNeedsDisplay和setNeedsDisplay和layoutIfNeeded关系

1.UIView的setNeedsDisplay和setNeedsLayout方法

*首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到 UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,
就可以 处理子视图中的一些数据。
综上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。*

setNeedsLayout
//注意一下这句话的意思:调用了layoutSubViews进行布局,但是页面不会重新刷新,还是原来的样子,就好像暂停了一般,必须使用layoutIfNeeded才会刷新,所以setNeedsLayout就好像设置了一个标记,等待layoutIfNeeded去开动
*标记为需要重新布局,不立即刷新,但layoutSubviews一定会被调用
配合layoutIfNeeded立即更新*

layoutIfNeeded
如果,有需要刷新的标记,立即调用layoutSubviews进行布局

你可能感兴趣的:(setNeedsDisplay和setNeedsDisplay和layoutIfNeeded关系)