UITableView的性能优化问题

来源:互联网 发布:卫星通信下载软件 编辑:程序博客网 时间:2024/04/20 23:01

刚开始摸索UITable的时候,一般用这中方式来加载数据,后来发现有比较大得性能问题

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:nil];    // 取出模型    PTHero *hero = self.heros[indexPath.row];        // 设置cell的数据    cell.textLabel.text = hero.name;    cell.detailTextLabel.text = hero.intro;    cell.imageView.image = [UIImage imageNamed:hero.icon];    return cell;}


最后在网上查询一下,才知道tableView有一个缓存区,他会将已经从屏幕中消失的cell放到缓存区,等你再一次需要这种类型的cell时,可以直接去缓存区寻找如果有就拿来用,不用每次都创建新的cell。

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    根据标识“A”创建一个cell    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"A"];    //如果缓存区没有"A"类型的cell,则创建一个新的    if (cell == nil) {        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"A"];    }        PTHero* hero = self.heros[indexPath.row];    cell.textLabel.text = hero.name;    cell.detailTextLabel.text = hero.intro;    cell.imageView.image = [UIImage imageNamed:hero.icon];    return cell;}


0 0
原创粉丝点击