UIView、事件的管理者,負責創建依賴關係。網絡
是子視圖、事件、CALayer的管理者。佈局
處理佈局。url
大多數狀況下,AutoLayout是自上而下
進行佈局,視圖樹上,父節點設置subviews的約束。code
這樣只要知道了樹根的frame就能夠繪製出整棵視圖樹。cdn
有些狀況下,下層佈局會影響上層,如tableView的自動估計、朋友圈新增回覆。blog
這時候,視圖樹子節點須要告訴相應的父節點去從新計算本身的約束,並刷新佈局。繼承
initWithFrame中事件
組裝subviewget
setModel中it
配置數據源,needLayout
layoutSubview中
處理佈局
init,只有須要傳一些參數的時候,才須要
不要出現self.view,只作普通屬性賦值(如model,詳情頁url等)
viewDidLoad中
組裝好subview
viewWilAppear中
處理數據相關,處理系統級任務(好比statusbar、網絡監聽等)
viewDidLayoutSubviews中
處理佈局
subview在getter中初始化
瘦身
ViewModel、RAC、category
把loadingView等常見統一操做,寫到一個UIViewController的分類中。