tableView作为我们常用的一个空间,人们对它的滚动流畅度的感觉是很明显的,那么今天咱们一起聊聊怎么使UITableView的滚动变的更加流畅
首先我们要知道都有哪些原因会是列表带来卡顿感呢。
- 对象的创建、调整、销毁
- 布局的计算
- 自动化布局
对于第一个问题:
大家都知道UIView和CALayer都能够用于展示,UIView除此之外还可以用于交互,因此在一些不需要交互的地方咱们可以直接使用CALayer来展示(使用CALayer的contents属性可以用来展示图片)
- 不管使用什么方法进行布局,到最后都是落到对UIView的frame、bounds、center等属性进行调整,所以为了能够保持流畅,我们在布局前要尽量一次性把视图的位置调整好
- 对视图进行频繁创建也是很消耗资源的,所以比尽量避免吧UIView进行移除、重新创建,把这个UIView hide了吧
对于第二个问题:
大家在对UITableViewCell进行布局时,在后台线程进行计算尽量用上缓存吧(P.S.你可以使用阳神的UITableView-FDTemplateLayoutCell来做,或者利用MJ的FrameModel来缓存)。当你的TableViewCell的高度是一定的时候,直接设置tableView的RowHeight属性吧
对于第三个问题
虽然说自动布局时苹果力推的技术,但是它也是有着一当消耗的,特别是当视图非常复杂的时候,CPU的消耗就会呈指数级别上升