Добавление нескольких пользовательских ячеек в UITableView

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

7
задан WaJiyaz 7 April 2011 в 02:01
поделиться