UITableView优化

2020-12-29  本文已影响0人  一个栗

主要包括以下2个方面:
1.减少cellForRowAtIndexPath计算(cell内容计算)
2.减少heightForRowAtIndexPath(cell高度计算)

减少cellForRowAtIndexPath计算

  1. 提前计算每个cell中需要的一些基本数据,代理调用的时候直接取出。
  2. 图片要异步加载,加载完成后再根据cell内部UIImageView的引用设置图片。
  3. 图片数量多时,图片的尺寸要根据需要提前经过transform矩阵变换压缩好(直接设置图片的contentMode让其自行压缩仍然会影响滚动效率),必要的时候要准备好预览图和高清图,需要时再加载高清图。
  4. 图片的“懒加载“法,延迟加载,当滚动速度很快时避免频繁请求服务器。

减少heightForRowAtIndexPath

  1. 若cell高度确定,则去掉heightForRowAtIndexPath代理方法,直接设置tableView的rowHeight属性为固定的高度。
  2. 如果高度不固定,则将高度缓存,异步请求服务器数据时,提前将cell的高度计算好并作为datasource的一个数据保存起来。

常见问题:UITableView中cell的复用是由几个数组实现的?

答案:2个
一个是visiableCells数组,保存当前屏幕可见的cell;另一个是reusableTableCells数组用来保存那些可复用的cell。

上一篇 下一篇

猜你喜欢

热点阅读