【iOS开发】关于UITableView的cell循环使用

如果没有让cell循环使用的话。每次展示数据就会有一个cell重新创建,并且如果展示过的数据再次展示还是会重新创建一cell,这样就会造成内存的浪费。

技术分享

解决方法:就是让展示过的cell放入cel池中,每次需要用的时候就拿出来,换一下内容展示出来,滑动到屏幕以外就把这个cell再次放入cell池中等待下一个展示数据用。所以屏幕显示几个cell,这是cell一共需要创建这个多个+1。

比如上图中:屏幕能完整显示11个cell,那么就需要创建12的cell。

如果上上滑动,暴走萝莉出了屏幕,那么显示暴走萝莉这个cell就没用,被存入cell池中,那么显示影流之主下面那个英雄的cell不会被创建,而是拿出上个cell池中得cell更改一下数据显示出来就行了,如此循环下去。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *ID = @"hero";
    //从池中取出数据
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
    if(cell == nil) {
        //创建cell,没用的时候就放入ID池中
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
    }
    Hero *hero = self.heros[indexPath.row];
    
    cell.textLabel.text = hero.name;
    cell.detailTextLabel.text = hero.intro;
    cell.imageView.image = [UIImage imageNamed:hero.icon];
    
    return cell;
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。