Лучшая производительность для установки backgroundView: willDisplayCell или init? - PullRequest
0 голосов
/ 15 июня 2011

Мне просто любопытно, что имеет лучшую производительность для установки пользовательского backgroundView UITableViewCell?

Опция 0) Подкласс метода инициализации UITableViewCell

@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 Ответ

4 голосов
/ 15 июня 2011

Опция 0 лучше в этом случае, так как вы устанавливаете фон один раз при создании ячейки, а willDisplayCell будет устанавливать его каждый раз при отображении ячейки. И так как вы будете повторно использовать UITableViewCells, вы создадите ячейку меньше времени, чем покажете их.

Но избегайте преждевременной оптимизации, оптимизируйте только тогда, когда вы чувствуете, что производительность недостаточно хороша.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...