UI基本原则

1 职责

1.1 UIViewController的职责

UIView、事件的管理者,负责建立依赖关系。

1.2 UIView的职责

  1. 是子视图、事件、CALayer的管理者。

  2. 处理布局。

2 布局

大多数情况下,AutoLayout是自上而下进行布局,视图树上,父节点设置subviews的约束。

这样只要知道了树根的frame就可以绘制出整棵视图树。

有些情况下,下层布局会影响上层,如tableView的自动估计、朋友圈新增回复。

这时候,视图树子节点需要告诉相应的父节点去重新计算自己的约束,并刷新布局。

3 代码组织

3.1 对于view

  1. initWithFrame中

    组装subview

  2. setModel中

    配置数据源,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的分类中。

转载于:https://juejin.im/post/5d077fa0e51d45105d63a50a

猜你喜欢

转载自blog.csdn.net/weixin_33766805/article/details/93180868