Подтвердить что ты не робот

Переопределить для пользовательского UITableViewCell

У меня есть пользовательский UITableViewCell, который я использую следующим образом:

AppTableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"AppTableCell" owner:self options:nil];  
    for(id currentObject in topLevelObjects) {
        if([currentObject isKindOfClass:[AppTableCell class]]) {
            cell = (AppTableCell *)currentObject;
            break;
        }
    }
}

Работает безупречно. Но я хотел бы сделать некоторые пользовательские вещи в ячейке, когда они будут созданы. Обычно я бы переопределял что-то вроде initWithFrame, но его здесь не использовали. Какой метод следует переопределить для настройки инициализации?

4b9b3361

Ответ 1

Правильный способ - переопределить awakeFromNib для UITableViewCell.

- (void)awakeFromNib
{
    [super awakeFromNib];
    // Do something
}

Подробнее см. ссылки.

Ответ 2

Объекты, которые не имеют аналогов из ниба, отправляются в сообщение -initWithCoder:. Это ваша точка переопределения.