ios UITableview优化
影响tableview性能的主要原因有:
1.cellForRowAtIndexPath方法中处理了过多业务.
1.1 重用Cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
1.2 异步加载Cell图片。如果cell图片过多,异步加载导致线程过多仍然会卡顿。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
if (self.tableView.dragging == NO && self.tableView.decelerating == NO)
{
//开始异步加载图片
<code>
}
如果tableview 停止滑动的时候开始异步加载图片。
2.tableviewCell的subview层级太复杂,做了大量透明处理
3.heightForRowAtIndexPath
3.1缓存高度
3.2调用reload会重新计算所有Cell的高度
4.XIB
4.1在使用高性能的Cell时,还是推荐使用代码来创建Cell。当UITableViewCell拥有多个子视图时,IOS的渲染机制会拖慢速度。重写drawRect直接绘制内容的方式可以提高性能,而不是在类初始化的时候初始化一些label或者imageview等。
4.2绘制时要尽可能的避免分配资源,比如UIFont,NSDateFormatter或者任何在绘制时需要的对象,推荐使用类层级的初始化方法中执行分配,并将其存储为静态变量。
4.3透明图层对渲染性能会有一定的影响,系统必须将透明图层与下面的视图混合起来计算颜色,并绘制出来。减少透明图层并使用不透明的图层来替代它们,可以极大地提高渲染速度。UIView背景色避免使用clearColor,UIView记得设置成和SuperView相同的颜色
关于这个请参考 http://blog.csdn.net/lvxiangan/article/details/39827405

浙公网安备 33010602011771号