打算做一些TableView滑動式的優(yōu)化處理,所以就從最基本的開始著手吧,慢慢來一個系列。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSLog(@"numbers %ld",section);
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
CHImageCell *cell = [tableView dequeueReusableCellWithIdentifier:CACHECELLID forIndexPath:indexPath];
NSLog(@"cell %ld",indexPath.row);
cell.backgroundColor = [UIColor blueColor];
return cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"height %ld",indexPath.row);
//
return 140;
}
上面是關(guān)于TableView Datasource 3個基本的代理方法,返回cell個數(shù),返回cell,這兩個是必須實現(xiàn)的(不實現(xiàn)你用個毛線),后面一個是關(guān)于cell高度的,這個就有點講究了,如果是固定高度(如上)則直接返回,如果你的cell需要根據(jù)內(nèi)容自適應(yīng),那就需要在這里做點文章。先點到這里,后面補充??。
上面3個方法實現(xiàn)之后,必然又個先后,以及滑動時的先后,
2017-11-13 17:31:10.333923+0800 TestUITableViewCellHeightCache[5244:1179863] numbers 0
2017-11-13 17:31:10.334278+0800 TestUITableViewCellHeightCache[5244:1179863] numbers 0
2017-11-13 17:31:10.337829+0800 TestUITableViewCellHeightCache[5244:1179863] numbers 0
2017-11-13 17:31:10.338752+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
2017-11-13 17:31:10.339405+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
2017-11-13 17:31:10.339663+0800 TestUITableViewCellHeightCache[5244:1179863] cell 0
2017-11-13 17:31:10.339921+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
2017-11-13 17:31:10.344158+0800 TestUITableViewCellHeightCache[5244:1179863] height 1
2017-11-13 17:31:10.344577+0800 TestUITableViewCellHeightCache[5244:1179863] height 1
2017-11-13 17:31:10.344729+0800 TestUITableViewCellHeightCache[5244:1179863] cell 1
2017-11-13 17:31:10.344843+0800 TestUITableViewCellHeightCache[5244:1179863] height 1
2017-11-13 17:31:10.345305+0800 TestUITableViewCellHeightCache[5244:1179863] height 2
2017-11-13 17:31:10.345532+0800 TestUITableViewCellHeightCache[5244:1179863] height 2
2017-11-13 17:31:10.345664+0800 TestUITableViewCellHeightCache[5244:1179863] cell 2
2017-11-13 17:31:10.345808+0800 TestUITableViewCellHeightCache[5244:1179863] height 2
2017-11-13 17:31:10.346145+0800 TestUITableViewCellHeightCache[5244:1179863] height 3
2017-11-13 17:31:10.346437+0800 TestUITableViewCellHeightCache[5244:1179863] height 3
2017-11-13 17:31:10.346567+0800 TestUITableViewCellHeightCache[5244:1179863] cell 3
2017-11-13 17:31:10.346666+0800 TestUITableViewCellHeightCache[5244:1179863] height 3
2017-11-13 17:31:10.346977+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:10.347191+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:10.347317+0800 TestUITableViewCellHeightCache[5244:1179863] cell 4
2017-11-13 17:31:10.347413+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:39.409023+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:39.409218+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:39.409363+0800 TestUITableViewCellHeightCache[5244:1179863] cell 4
2017-11-13 17:31:39.409483+0800 TestUITableViewCellHeightCache[5244:1179863] height 4
2017-11-13 17:31:43.696567+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
2017-11-13 17:31:43.696826+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
2017-11-13 17:31:43.696997+0800 TestUITableViewCellHeightCache[5244:1179863] cell 0
2017-11-13 17:31:43.697166+0800 TestUITableViewCellHeightCache[5244:1179863] height 0
分析一下??:
- 首先關(guān)于cell個數(shù)的方法執(zhí)行了3次,之后再沒執(zhí)行;
- 然后返回cell高度的方法執(zhí)行了2次,接著返回cell一次,關(guān)于這個cell的高度又執(zhí)行一次。
- 滑動時也是這個順序。