美文网首页
UITableVIew DataSource 执行顺序

UITableVIew DataSource 执行顺序

作者: 元昊 | 来源:发表于2017-11-13 17:47 被阅读10次

    打算做一些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的高度又执行一次。
    • 滑动时也是这个顺序。

    相关文章

      网友评论

          本文标题:UITableVIew DataSource 执行顺序

          本文链接:https://www.haomeiwen.com/subject/sugzmxtx.html