美文网首页
UIPageViewController 与 UIScrollV

UIPageViewController 与 UIScrollV

作者: yue_kyy | 来源:发表于2018-03-01 20:21 被阅读0次

    所查到的标签控制器的实现方案大多是 UIPageViewController 实现的,所以将 UIPageViewController 应用到项目中查看效果,我们目前的实现方案是使用 UIScrollView 模拟UIPageViewController 的效果,两者的对比数据如下:

    一、运行内存

    经过多次操作,可以看出 UIPageViewController 的内存占用略大于 UIScrollView 的实现方案

    二、CPU 占用率对比

    1)UIPageViewController 在切换时最高达到98%

    UIPageViewController CPU 占用波动图

    2)UIScrollView 在切换时最高达到78%

    UIScrollView CPU占用波动图

    三、总结

    (1)UIPageViewController  存在的缺陷

              1、缓存页面导航设置不正确,会导航到错误的页面

              2、快速滑动情况下会出现空白页,已复现

              3、切换 childController 时候的 CPU 占用极高、切换时内存频繁波动

    (2)我们目前的方案:使用 UIScrollView 模拟 UIPageViewController

              1、由上图可知,在切换时,内存和占用 CPU 的情况较优于 UIPageViewController

              2、模拟了平缓切换的效果、动画效果符合业务需求

              3、解决 UIPageViewController 连续快速切换的页面闪白问题(页面在使用时未及时添加或提前移除)

    TODO:

               1、在点击顶部 header 切换时,内存波动较大。

               2、当用户极快速的滑动切换页面时,在动作结束前未执行添加或移除 VC 操作,所以在滑动过程中会出现空白展示页面直至动作结束,目前优化了顶部导航的动画效果,随着用户滑动而更新位置和颜色。

    所以经过对比,认为目前的实现方案优于替换成 UIPageViewController,而且还有优化空间。

    demo:https://github.com/yuetianlu/YTLPageController.git

    相关文章

      网友评论

          本文标题:UIPageViewController 与 UIScrollV

          本文链接:https://www.haomeiwen.com/subject/qrdnxftx.html