Вы должны создать подкласс UITableViewCell
и поместить в него метод awakeFromNib
для выполнения инициализации после пробуждения от пера.
Чтобы сохранить ваш код гибким, поместите этот код инициализации в некоторую подпрограмму, называемую myInit
, и вызывайте ее из awakeFromNib
и из других мест, где он должен быть вызван.
После некоторых трудностей я придумал немного другой подход к этой ситуации. Я подкласс UITableViewCell
и у меня есть процедура инициализации, как это:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
[[NSBundle mainBundle] loadNibNamed:@"MyUITableViewCell" owner:self options:nil];
[self addSubview:self.contentView];
}
return self;
}
, где contentView
- это IBOutlet
, содержащий содержимое ячейки. Это позволяет остальной части моего кода просто вызывать эту ячейку как любую другую ячейку. (кроме одного противного броска за (MyUITableViewCell*)[tv dequeueReusableCellWithIdentifier:CellIdentifier];
)