在一個 Runloop 處理完事件後,最後進入 Update cycle:oop
相似於 layoutSubviews 的機制。佈局
只應該在此方法中實現必需要更新的約束,靜態的約束應在interface builder、視圖的初始化方法或 viewDidLoad() 方法中指定。ui
不該直接調用,應調用觸發方法讓系統處理事件
自動標記約束髮生變化,在下一個週期會觸發 updateConstraints 的行爲:class
相似於 setNeedsLayout 的機制,手動標記發生變化,下週期調用 updateConstraints 更新date
相似於 layoutIfNeeded 的機制,檢查視圖的約束是否被標記發生變化,若有變化當即調用 updateConstraints方法
設置一個標記表示這個視圖的 intrinsicContentSize 已通過期,須要在下一個佈局階段從新計算。layout
視圖的 intrinsicContentSize:視圖根據本身內容獲得的天然尺寸,一般由包含元素的約束約定,也能夠自定義di
處理對視圖及其全部子視圖的從新定位和大小調整 會調用子視圖的 layoutSubviews,開銷很大view
不該直接調用,應調用觸發方法讓系統處理
自動標記視圖的佈局發生變化,在下一個週期會觸發 layoutSubviews 的行爲:
手動標記該視圖的佈局發生變化,在下一個週期調用 layoutSubviews 更新
檢查視圖的佈局是否被標記發生變化,若有變化當即調用 layoutSubviews
相似於 layoutSubviews 的機制,但不會觸發對子視圖方法的調用
不該直接調用,應調用觸發方法讓系統處理
自動標記視圖顯示發生變化,在下一個週期會觸發 drawRect 的行爲:
相似於 setNeedsLayout 的機制,手動標記發生變化,下週期調用 drawRect 更新
顯示方法沒有相似 layoutIfNeeded 的方法