优化Tableview滑动

先理解要优化的东西

  1. 减轻CPU负荷
    1.1提前计算好cell的高度,缓存在相应的数据源模型中
    1.2 尽可能的降低storyboard,xib等使用度
    1.3 滑动过程中尽量减少重新布局

  2. 不要阻塞主线程
    2.1 Color Blended Layers
    2.2 Color Hits Green and Misses Red
    2.3 Color Copied Images
    2.4 Color Immediately
    2.5 Color Misaligned Images
    2.6 Color Offscreen-Rendered Yellow
    2.7 Color OpenGL Fast Path Blue

先看看Cell的样式

  • 活动类型


    活动.png
  • 普通酒款点评类型


    酒款点评.png
  • 网页推荐点评类型


    网页推荐点评.png

大致的类型分为三种

然后把相似的内容和不相似的分类

  1. 用户信息栏


    图片.png
  2. 点评信息栏


    图片.png
  3. 文本内容


    图片.png
  • 文本支持##话题 网页链接,还有限制在6行内,多出内容...全文显示。

4.酒款信息栏

  • 酒款类型


    图片.png
  • 活动类型有一个短标题


    图片.png
  • 网页文章


    图片.png
  1. 底部操作栏


    图片.png

总体而言分为5大部分,内容不算复杂。

按照上述模块,先计算好所有内容的高度位置等信息,避免滑动时多次计算。

  • 先走流程,用Time profile 检测耗时的函数


    image.png

定位到具体的函数,这样就简单多了。 把该计算的先计算,该缓存的缓存。
用公司测试机,iphone 6plus 16G 来测试。


gif5新文件.gif

总体而言修改后还是很流畅的。

简单的说一下如何修改吧

  • 圆角处理,方法有几种
  1. 下载图片后,直接切成圆角显示。
  2. 生成一张圆角图,盖在上面需要圆角的图片上。 当然你可以自己缓存起来,方便使用
  • 尽量不要使用xib,使用纯代码编写。
  • 尽量处理好图层的关系,不要使用多余的View
  • 图片下载SDWebImage性能不足,我这边选择了YYImage来替换
  • 图片的ImageView不要动态生成。一次生成后,选择隐藏和位置调整
  • 原来的小便签是用Label叠在一起,这次直接用富文本,避免了每次生成和设置边框等繁琐的操作。
  • ...
    总体而言,修改这个并不算复杂,主要是找对方向,网上有大量的文章,在修改前可以多阅读。

你可能感兴趣的:(优化Tableview滑动)