打算做一些TableView滑动式的优化处理,所以就从最基本的开始着手吧,慢慢来一个系列。
- (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;
}
上面是关于TableView Datasource 3个基本的代理方法,返回cell个数,返回cell,这两个是必须实现的(不实现你用个毛线),后面一个是关于cell高度的,这个就有点讲究了,如果是固定高度(如上)则直接返回,如果你的cell需要根据内容自适应,那就需要在这里做点文章。先点到这里,后面补充😁。
上面3个方法实现之后,必然又个先后,以及滑动时的先后,
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
分析一下🤔:
- 首先关于cell个数的方法执行了3次,之后再没执行;
- 然后返回cell高度的方法执行了2次,接着返回cell一次,关于这个cell的高度又执行一次。
- 滑动时也是这个顺序。
网友评论