iOS UITableviewCell优化
0.Cell必须重用
1.把Cell的opaque设置为YES
2.多种样式的Cell分开写
3.尽量提前初始化好要用到的UI不要每次更新页面的时候都要创建和删除
4.尽量定高,如果动态算高度尽量不要用到UIKit的东西计算
5.如果直接用IB加载的话尽量用- (void)registerNib:(UINib *)nib forCellReuseIdentifier:(NSString *)identifier NS_AVAILABLE_IOS(5_0);
6.如果高度变化切计算高度耗时间,可以用一个变量来记录当前cell的高已到达复用的效果
7.如果图片过多滑动的时候尽量延迟加载图片
TableView中实现平滑滚动延迟加载图片
转自: http://www.starming.com/index.php?v=index&view=74
利用CFRunLoopMode的特性,可以将图片的加载放到NSDefaultRunLoopMode的mode里,这样在滚动UITrackingRunLoopMode这个mode时不会被加载而影响到。
UIImage *downloadedImage = ...;
[self.avatarImageView performSelector:@selector(setImage:)
withObject:downloadedImage
afterDelay:0
inModes:@[NSDefaultRunLoopMode]];
-----------------------------------------知识补充---------------------------------------------
alpha支持Animation(动画), hidden和opaque不支持动画
hidden相比alpha开销小,alpha=0透明开销大,如果效果一样,用hidden好一点.
hideen的时候view是不接收事件的,但alpha为0时View可以接收事件.
当把View设置为透明的背景时,一般把opaque设置为YES,可以减少开销,对内存也好.