Я сделал UITableView заполнены с источником PLIST данных, и я сделал пользовательские ячейки с Interface Builder (так я использую XIB файлы)Развернуть/свернуть UITableViewCell с другой клеткой и источником данных
вот часть кода где я создаю клетку:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
DataTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"DataTableViewCell" owner:nil options:nil];
for (UIView *view in views) {
if ([view isKindOfClass:[UITableViewCell class]]) {
cell = (DataTableViewCell*)view;
}
}
}
return cell;
}
тогда, когда я использую: метод
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
, чтобы получить выбранную ячейку, я называю этот метод, чтобы расширить ячейку:
- (void)expandCellAtIndex:(int)index {
NSMutableArray *path = [NSMutableArray new];
NSArray *currentCells = [subCellItems objectAtIndex:index];
int insertPos = index + 1;
for (int i = 0; i < [currentCells count]; i++) {
[path addObject:[NSIndexPath indexPathForRow:insertPos++ inSection:0]];
}
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
Теперь проблема в том, что, так как я не сделал этого раньше, я застрял на логику о том, как изменить ячейку я хочу показать в развернутом, что это потому, что метод:
[self.tableView insertRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
ищет правильный путь и вставить ячейку с одной и той же ячейки XIb файл в качестве одного я загружен с моими данными в начале
как я могу установить другую ячейку (с другой XIb , и разные данные), чтобы показать вместо того, что было раньше?
в основном я эта таблица работает, но в расширяющейся камере я вижу копию ячейки прикосновение
Прежде всего спасибо за ваш ответ, я хотел бы спросить вас, как я могу подключить IBOutlets ячеек (которые имеют свои отдельные файлы xib и разные классы) в файл UIViewController (у которых есть свой собственный xib с UITableView внутри него), я всегда подключал IBOutlets в файлы .r (например DataTableViewCell.xib в DataTableViewCell.h) – Adarkuccio
Я обновил свой ответ для xib без IBOutlet. – stosha