IOS tableView的性能优化(缓存池)

使用缓存池(标识类型)

1.通过 一个 标识 去 缓存池 中寻找可循环得用的cell

2.如果缓存池找不到可循环得用的cell:创建一个新的cell(给cell贴个标识)

3.给cell设置新的数据

 

本地数据性能优化(实例)

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    
    //static 修饰局部变量:可以保证局部变量只分配一次存储空间(只初化一次)
    static NSString *ID=@"hero";
    
    //1.通过一个标识去缓存池中寻找可循环利用的cell
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];
    
    //2.如果没有可循环利用的cell(创建新的cell)
    if(cell==0)
    {
    cell= [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
        NSLog(@"-----缓存池找不到cell--%d",indexPath.row);
    }
    //3.给cel设置新的数据
    //取出模型
     MJHero *hero=self.hero[indexPath.row];
                           
    //设置cell的数据
    cell.textLabel.text=hero.name;
    cell.detailTextLabel.text=hero.intro;
    cell.imageView.image=[UIImage imageNamed:hero.icon];
    
    //设置cell右边指示器的类型
    cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
    
    return cell;
}

 

posted on 2017-02-23 15:24  守望星空  阅读(358)  评论(0编辑  收藏  举报

导航