UITableVIew DataSource 執(zhí)行順序

打算做一些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í)行一次。
  • 滑動時也是這個順序。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容