从缓存中或者是从本地读取图片给UIImage的时候耗费的时间。需要把下面的两句话放到子线程里面:
NSData *imgData=[NSData dataWithContentsOfURL:[NSURL URLWithString:app.icon]]; //得到图像数据
UIImage *image = [UIImage imageWithData:imgData];
把UIImage赋值给图片的时候在主线程。
子线程不能更新UI, 所有的UI更新都是主线程执行了.手指滑动屏幕了,或者屏幕的某个方法执行了。
如何优化tabelView的滑动速度:
1:复用单元格;
2:使用不透明的视图,单元格尽量少使用动画;
3:图片加载使用异步加载,设置图片加载的并发数;
4:滑动时不加载图片,停止时加载;
5:文字,图片可以直接drawInRect绘制;图片需要圆角的情况下,直接使用带圆角的图片节省性能;
6:如非必要,尽量reloadData全部cell,可以针对性的reloadRowsAtIndexPaths;
7:如果cell是动态行高,计算高度后缓存;
8:cell高度固定的话直接使用cell.rowHeight设置高度;