UI基本原則

1 職責

1.1 UIViewController的職責

UIView、事件的管理者,負責創建依賴關係。網絡

1.2 UIView的職責

  1. 是子視圖、事件、CALayer的管理者。佈局

  2. 處理佈局。url

2 佈局

大多數狀況下,AutoLayout是自上而下進行佈局,視圖樹上,父節點設置subviews的約束。code

這樣只要知道了樹根的frame就能夠繪製出整棵視圖樹。cdn

有些狀況下,下層佈局會影響上層,如tableView的自動估計、朋友圈新增回覆。blog

這時候,視圖樹子節點須要告訴相應的父節點去從新計算本身的約束,並刷新佈局。繼承

3 代碼組織

3.1 對於view

  1. initWithFrame中事件

    組裝subviewget

  2. setModel中it

    配置數據源,needLayout

  3. layoutSubview中

    處理佈局

3.2 對於viewController

  1. init,只有須要傳一些參數的時候,才須要

    不要出現self.view,只作普通屬性賦值(如model,詳情頁url等)

  2. viewDidLoad中

    組裝好subview

  3. viewWilAppear中

    處理數據相關,處理系統級任務(好比statusbar、網絡監聽等)

  4. viewDidLayoutSubviews中

    處理佈局

  5. subview在getter中初始化

  6. 瘦身

    ViewModel、RAC、category

4 常見類繼承關係

5 常見作法

把loadingView等常見統一操做,寫到一個UIViewController的分類中。

相關文章
相關標籤/搜索