В своем подклассе UITableViewController добавьте IBOutlet для своего пользовательского класса ячеек:
@property(nonatomic,retain)IBOutlet UITableViewCell *customCell;
Затем в пользовательской ячейке xib установите для владельца файла свой подкласс UITableViewController и назначьте внешний вид IBOutlet для владельца файла. Для каждого подпредставления, к которому вы хотите получить программный доступ, присвойте уникальное значение его свойству tag
. Допустим, в вашей пользовательской ячейке есть 3 метки, которые вы пометили 1, 2 и 3.
Наконец, в вашем методе cellForRowAtIndexPath
загрузите наконечник в розетку, используя метод loadNibNamed
. См. API документы для объяснения того, как это работает.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// assuming nib is MyCustomCell.xib
[[NSBundle mainBundle] loadNibNamed:@"MyCustomCell" owner:self options:nil];
// assign IBOutlet to cell
cell = customCell;
// clear IBOutlet
self.customCell = nil;
}
Теперь вы можете получить доступ к помеченным представлениям в вашей пользовательской ячейке, используя метод viewWithTag
в вашей ячейке:
UILabel *label1 = (UILabel *)[cell viewWithTag:1];
label1.text = @"foo";
UILabel *label2 = (UILabel *)[cell viewWithTag:2];
label2.text = @"bar";
UILabel *label3 = (UILabel *)[cell viewWithTag:3];
label3.text = @"baz";