Хотя это один из наиболее часто задаваемых вопросов, но я не смог найти исчерпывающий ответ. Мне нужно иметь настраиваемые ячейки в UITableView. Некоторые из них содержат метки или текстовые поля, а некоторые - с изображениями и кнопками. Я сделал отдельные классы для каждого типа ячейки. Я использую таблицу GroupStyle с несколькими разделами. Прямо сейчас я добавляю ячейки в cellForIndexPath с переключателем для раздела и 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;
Я также должен вернуть ячейку в конце, потому что из-за определения ячеек внутри блоков кода ячейка становится неузнаваемой. Чтобы решить эту проблему, я объявил ячейку с идентификатором сверху, но я знаю, что это неправильный путь. Как я могу решить эту проблему объявления и доступа к нескольким типам ячеек?
На данный момент есть 4-5 строк, которые умещаются на одном экране и не требуют прокрутки. Итак, я не использую повторно ячейки. Но при редактировании будет втиснуто больше строк. А в другой таблице есть больше строк, которые можно прокручивать на экране. Это означает, что я должен повторно использовать ячейки. Итак, вторая часть моего вопроса: как я могу повторно использовать несколько пользовательских ячеек?