zl程序教程

您现在的位置是:首页 >  后端

当前栏目

复杂页面架构

架构 页面 复杂
2023-09-14 09:04:14 时间

返回上级目录:iOS面试专题一

复杂页面架构总结(以微博正文页为例)

  • 微博正文的整体架构是借鉴了MVVM的框架思想,但是和标准的MVVM框架又有一些区别
  • 微博正文页的反向更新机制,模拟了系统UIView的反向更新机制。UIView的绘制原理流程,我们在调用UIView,setneeddisplay,只是给对应视图打了一个桩标记,它真正发生实际的绘制是在当前runloop将要结束的时候。
  • AsyncDisplay预排版:是性能优化方案的一种

请添加图片描述

MVVM

  • 虚线:可以是block, RAC, 代理,通知
    请添加图片描述

RN数据流思想

  • 一个父视图有几个子视图,每个子视图又有自己的子视图
  • 对某一个UIView进行数据更新,导致UI变化的时候。我们需要通过多叉树反向回到根节点,然后由根节点自顶向下的遍历,来判定那个节点需要更新。某个节点在反向更新的时候打上了桩标记,在自顶向下寻找的时候,如果发现某个节点(视图)被打上了章标记,那它实际上就是最终需要更新的结点,然后去更新对应的UI视图
  • 任何一个子孙结点是没有权利做自己的变化更新的,他必须要把自己变化更新的消息传递给根结点,然后由根结点自顶向下遍历询问更新
  • 微博正文的反向更新用到了RN的数据流思想
    请添加图片描述