设置backgroundView的更好的性能:willDisplayCell或init?

时间:2011-06-14 21:03:53

标签: objective-c ios cocoa-touch uitableview

我只是好奇,设置UITableViewCell的自定义backgroundView有什么更好的表现?

选项0)UITableViewCell init方法的子类

@implementation CustomCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier andReleases:(NSArray*)releases {

    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        self.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tablecell.png"]] autorelease];
    }
    return self;
}

选项1)willDisplayCell委托方法

- (void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
    cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tablecell.png"]] autorelease];
}

1 个答案:

答案 0 :(得分:4)

在这种情况下,选项0更好,因为您在创建单元格时设置了一次背景,并且每次显示单元格时willDisplayCell都会设置背景。而且,由于您将重复使用UITableViewCells,因此您将创建单元格更少的时间,然后您将显示它们。

但要避免过早优化,只有当您觉得性能不够好时才进行优化。