不错的设计思路

1.开发中的 AOP 思路

  1. 代理模式
    ① 对于 UITableViewCell 中的跳转点击事件, 而该 cell 不知道它所在的UIViewController 是谁, 就需要向上一级传递这个点击事件, 直到找到当前控制器, 从对应的 UINavigationController 跳转到到一个指定的控制器.
    ② 传递事件的过程可能比较复杂, 设置一个又一个的代理, 于是新的自我管理的模式就应运而生了.
  2. Self-Managed:
    为了让每个 cell 各自处理自己的事情, 可以让每个子控件都拥有同一个公共管理类, 通过这个公共管理类来调用各个层级的控件.
  3. 为了降低耦合, 快速地添加或删除某个功能的代码, 可以使用协议. 如春哥的直播间功能, 直接定义一个遵循某些协议的对象, 就能在直播间的主控制器中的特定方法中, 调用这些对象实现的协议方法, 间接地帮助新功能快速调用主控制器的方法, 很类似 collectionview 的代理方法.

2.消息分发机制

  1. 在一个父视图中, 添加多个子视图, 而且这些子视图都需要被父视图调用执行某些相似的操作, 可以把子视图装进一个数组里, 在父视图里遍历有没有实现对应的方法, 按照实现情况来调用.

3. 分离

RoomRootView.m 中实现所有的子视图的懒加载创建, 在 RoomRootLayout 中实现- (void)createLayout:(PTVRoomRootView*)view;方法来对 RoomRootView.m 中的视图添加到父视图 RoomRootView 中, 并布局.

或在 RoomRootView.m 一级视图中实现所有的二级视图子视图的懒加载创建, 在 RoomRootLayout 中实现- (void)createLayout:(PTVRoomRootView*)view;方法来对 RoomRootView.m 中的视图添加到父视图 RoomRootView 中, 并布局, 同时实现- (void)makePortraitLiveVideoLayout:(PTVRoomPortraitView*)view;方法, 来添加PTVRoomPortraitView的子视图及其布局.

4. 复用

在创建新页面的时候, 最好考虑复用的情况, 即配置了 schema 跳转的情况, 通过几个参数, 就能正常展示.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,379评论 25 709
  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 1,404评论 0 1
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 28,197评论 5 19
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,263评论 30 472
  • hi,我是瑶寐,欢迎你来,第一次写作不知道写些什么,就写我的过去吧… 我是一个爱幻想的女孩子,小的时...
    追梦萝莉阅读 225评论 0 0