Строго говоря, структура не обеспечивает строгое связывание с xib своим владельцем файла. Вы можете использовать следующий код для загрузки пера:
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCustomCell" owner:nil options:nil];
EXFirstCustomCell *firstCell = (EXFirstCustomCell*)[nibContents objectAtIndex:0];
firstCell.firstView = [firstCell.contentView viewWithTag:VIEW_TAG];
firstCell.button = [firstCell.contentView viewWithTag:BUTTON_TAG];
на основе бизнес-логике, вы можете бросить результат [nibContents objectAtIndex:0];
, чтобы удовлетворить ваш изготовленный на заказ UITableViewCell
класса.
Edit # 1:
Приведение типов, как правило, плохая идея, так как firstCell
еще будет вид класса UITableViewCell
. Хорошей идеей было бы создать свой собственный конструктор, передать nibContents
в качестве аргумента и назначить там свои назначения.
Edit # 2
Я сделал немного экспериментов и вот как я получил эту работу:
Создать независимый вид XIb и дизайн вашей келью. Это должно быть мнение. Что вы здесь делаете, так это определение того, как будет выглядеть contentView
.
Загрузить все виды из xib. NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCommonContentView" owner:nil options:nil];
Создать конструктор пользовательской ячейки следующим образом:
-initWithNibContents:(NSArray*)nibContents {
self = [super init]
if(self) {
self.contentView = [nibContents objectAtIndex:0];
self.button = [self.contentView viewWithTag:BUTTON_TAG];
self.view = [self.contentView viewWithTag:VIEW_TAG];
}
}
ли пользуешься одного tablview? –