天天看點

setNeedsLayout與layoutIfNeeded

三種方法都用于重新整理子對象布局,解釋分别如下:

-layoutSubviews方法:這個方法,預設沒有做任何事情,需要子類進行重寫

-setNeedsLayout方法: 标記為需要重新布局,異步調用layoutIfNeeded重新整理布局,不立即重新整理,但layoutSubviews一定會被調用

-layoutIfNeeded方法:如果,有需要重新整理的标記,立即調用layoutSubviews進行布局(如果沒有标記,不會調用layoutSubviews)

互相之間的關系,setNeedsLayout隻進行标記,layoutIfNeeded判斷是否有重新整理标記。如果有标記就會調用layoutSubviews布局。

繼續閱讀