UI基本原则
1 職責(zé)
1.1 UIViewController的職責(zé)
UIView、事件的管理者,負(fù)責(zé)建立依賴關(guān)系。
1.2 UIView的職責(zé)
是子視圖、事件、CALayer的管理者。
處理布局。
2 布局
大多數(shù)情況下,AutoLayout是自上而下進(jìn)行布局,視圖樹上,父節(jié)點(diǎn)設(shè)置subviews的約束。
這樣只要知道了樹根的frame就可以繪制出整棵視圖樹。
有些情況下,下層布局會(huì)影響上層,如tableView的自動(dòng)估計(jì)、朋友圈新增回復(fù)。
這時(shí)候,視圖樹子節(jié)點(diǎn)需要告訴相應(yīng)的父節(jié)點(diǎn)去重新計(jì)算自己的約束,并刷新布局。
3 代碼組織
3.1 對(duì)于view
initWithFrame中
組裝subview
setModel中
配置數(shù)據(jù)源,needLayout
layoutSubview中
處理布局
3.2 對(duì)于viewController
init,只有需要傳一些參數(shù)的時(shí)候,才需要
不要出現(xiàn)self.view,只做普通屬性賦值(如model,詳情頁url等)
viewDidLoad中
組裝好subview
viewWilAppear中
處理數(shù)據(jù)相關(guān),處理系統(tǒng)級(jí)任務(wù)(比如statusbar、網(wǎng)絡(luò)監(jiān)聽等)
viewDidLayoutSubviews中
處理布局
subview在getter中初始化
瘦身
ViewModel、RAC、category
4 常見類繼承關(guān)系
5 常見做法
把loadingView等常見統(tǒng)一操作,寫到一個(gè)UIViewController的分類中。
轉(zhuǎn)載于:https://juejin.im/post/5d077fa0e51d45105d63a50a
總結(jié)
- 上一篇: JDBC、分层(分包)
- 下一篇: 【转】NIO的定义和原理是什么?