您的位置:首页 > 产品设计 > UI/UE

UITableView的性能优化问题

2014-12-10 23:12 176 查看

刚开始摸索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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息