iOS UITableviewCell优化

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,可以减少开销,对内存也好.

http://www.cnblogs.com/YangFuShun/p/4505663.html

原文地址:https://www.cnblogs.com/tomblogblog/p/4353213.html