случай 3: альтернативные пользовательские ячейки (то есть нечетные четные)
это один из наиболее часто задаваемых вопросов, но я не смог найти один исчерпывающий ответ. Мне нужно иметь пользовательские ячейки в UITableView. Некоторые содержат метки или текстовые поля, а некоторые с изображениями и кнопками. Я сделал отдельные классы для каждого типа клеток. Я использую таблицу GroupStyle с несколькими разделами. Прямо сейчас я добавляю ячейки в cellForIndexPath с switch-case для секции и if-else для строк в секции:
id cell;
switch(indexPath.section) {
case 0:
if(indexPath.row==0) {
CellA *cell = [[[CellA alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
else if(indexPath.row==1) {
CellB *cell = [[[CellB alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
break;
case 1:
if(indexPath.row==0) {
CellC *cell = [[[CellC alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
break;
default:
break;
}
return cell;
Я должен вернуть ячейку в конце, потому что из-за определения ячеек внутри блоков кода ячейка становится неузнаваемой. Чтобы решить эту проблему, я объявил ячейку с id сверху. Но я знаю, что это не правильный путь. Как я могу решить эту проблему и разрешить проблему с несколькими типами ячеек?
На данный момент есть 4-5 рядов, которые соответствуют одному экрану и не нуждаются в прокрутке. Итак, я не использую клетки повторно. Но больше строк будет втискиваться во время редактирования. А в другой таблице есть еще ряды, которые могут прокручиваться на экране. Это означает, что я должен повторно использовать клетки. Итак, вторая часть моего вопроса: Как я могу использовать несколько пользовательских ячеек?