Auto Layout 擁有一套Layout Engine引擎,由它來主導(dǎo)頁面的布局。APP啟動后,主線程的Run Loop會一直處于監(jiān)聽狀態(tài),當(dāng)約束發(fā)生變化會觸發(fā)Deffered Layout Pass(延遲布局傳遞),在里面做容錯處理(約束丟失等情況)并把view標(biāo)識為dirty狀態(tài),然后Run Loop再次進入監(jiān)聽階段。當(dāng)下一次刷新屏幕動作來臨(或調(diào)用layoutIfNeeded)時,Layout Engine 會從上到下調(diào)用layoutSubviews(),通過Cassowary算法計算各個子視圖的位置,算出來后將子視圖的frame從Layout Engine拷貝出來,接下來的過程就跟手寫frame是一樣的了。
Auto Layout生命周期
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 先前寫到的一篇Masonry心得文章里已經(jīng)提到了很多AutoLayout相關(guān)的知識,這篇我會更加詳細的對其知識要點...
- 翻譯自:Demystifying iOS Layout 在你剛開始開發(fā) iOS 應(yīng)用時,最難避免或者是調(diào)試的就是和...