您的位置:首页 > 移动开发 > IOS开发

ios tableView性能优化策略

2015-06-12 19:21 429 查看
性能优化方法1:

/**

 *  什么时候调用:每当有一个cell进入视野范围内就会调用

 */

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    // 0.重用标识

    // 被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存

    static NSString *ID = @"cell";

    // 1.先根据cell的标识去缓存池中查找可循环利用的cell

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

    

    // 2.如果cell为nil(缓存池找不到对应的cell),创建一个cell 并标志

    if (cell == nil) {

        

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ID];

    }

    

    // 3.覆盖数据

    cell.textLabel.text = [NSString stringWithFormat:@"testdata - %zd", indexPath.row];

    

    return cell;
}

性能优化方法2:

static NSString *ID = @"cell";

- (void)viewDidLoad {

    [super viewDidLoad];

   

    self.tableView.delegate = self;

    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    // 1.去缓存池中查找cell

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

    

    // 2.覆盖数据

    XMGHero *hero = self.heroes[indexPath.row];

    cell.textLabel.text = hero.name;

    cell.imageView.image = [UIImage imageNamed:hero.icon];

    cell.detailTextLabel.text = hero.intro;

    return cell;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息