Есть ли способ использовать несколько классов uitableviewcell с nib-файлами в tableViewController?
Это отличное видео-руководство по созданию пользовательских классов ячеек для использования в tableViewController в функции cellForRowAtIndexPath, которую я 'вставьте сюда на тот случай, если кто-то захочет увидеть.
В этом примере они используют только один тип многократно используемого класса ячеек.Это из моего собственного проекта, но по сути это то, что представляет учебник.«videoCellEntry» - это пользовательская ячейка, которую я создал с помощью nib-файла videoEntryCell.xib, «videoEntry» - это класс для каждой настраиваемой ячейки, а «videos» - это массив videoEntry.
I 'Предполагая использование нескольких nib-файлов, я могу поставить некоторые условия, чтобы выбрать, какой nib-файл я хочу, и затем вызвать другую loadNibNamed: часть, например, так:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"videoCellId";
videoEntryCell *cell =
(videoEntryCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
if(<condition 1>) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"videoEntryCell" owner:self options:nil];
}
if(<condition 2>) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"videoEntryCell2" owner:self options:nil];
}
cell = (videoEntryCell *)[nib objectAtIndex:0];
}
// Configure the cell.
videoEntry *vid = [videos objectAtIndex:indexPath.row];
[cell configureForVideoEntry:vid];
return cell;
}
Но может ли tableViewController обрабатывать файлы nib с несколькими ячейками?Или есть лучший способ?И не будет ли каждая ячейка требовать различного CellIdentifier в зависимости от ее nib-файла?