http://iiiyu.com/2013/04/15/learning-ios-notes-twenty/
tableView的beginUpdate和endUpdate要比reloadData和reloadRowsAtIndexPaths好,因为beginUpdate和endUpdate会执行一个动画block,图片加载的时候显的很平滑。你自己试一下就知道了。
加载图片的时候要用多线程,要用缓存,也就是需要异步加载
计算cell的高度的时候要尽量的简单,因为tableVIew中cell的高度是一次性加载完的
要用重用机制,一定要用,不然会卡的
用户习惯性快速的滚动,视图和数据内容都会快速的变化,如果效率问题处理不好,很容易有卡顿的现象。造成用户体验的降低。
数据刷新
如果我们的modle更新了。相应的要体现到UITableView上面。简单的我们可以reload整个TableView。这样做很方便,而且数据上没有问题。唯一的问题就是,reload整个TableView的效率太低了。而且,往往我们只是少数的Cell内容变化。所以没有必要去reload整个TableView。而是那条数据变化去刷新对应的Cell就好了。这样做效率提高很多。
具体涉及到的几个函数
1
2
3
4
5
6
7
8
9
10
|
- (void)beginUpdates;
-
(void)endUpdates;
-
(void)insertSections:
(NSIndexSet *)sections withRowAnimation:
(UITableViewRowAnimation)animation;
-
(void)deleteSections:
(NSIndexSet *)sections withRowAnimation:
(UITableViewRowAnimation)animation;
-
(void)reloadSections:
(NSIndexSet *)sections withRowAnimation:
(UITableViewRowAnimation)animation;
-
(void)insertRowsAtIndexPaths:
(NSArray *)indexPaths withRowAnimation:
(UITableViewRowAnimation)animation;
-
(void)deleteRowsAtIndexPaths:
(NSArray *)indexPaths withRowAnimation:
(UITableViewRowAnimation)animation;
-
(void)reloadRowsAtIndexPaths:
(NSArray *)indexPaths withRowAnimation:
(UITableViewRowAnimation)animation;
|