Использование нескольких пользовательских ячеек без повторного использования идентификатора - PullRequest
0 голосов
/ 15 июня 2011

Я чувствую себя настоящим нубом, спрашивающим об этом, но вот моя проблема:

Я хочу показать tableView с 7 пользовательскими ячейками. Ни одна из этих клеток не используется повторно. Это означает, что пользователь увидит 7 разных ячеек, не больше, не меньше.

Я создал ячейки в методе viewDidLoad и добавил все эти ячейки в массив * listCells. После этого я использовал easy-mode для рисования этих ячеек:

UITableViewCell *cell = nil;
if (indexPath.row == 0)
{
    static NSString *MyIdentifier = @"Cell";
    cell =  (DetAlertCell *)[localTableView dequeueReusableCellWithIdentifier:nil];

    if (cell == nil) {
        [[NSBundle mainBundle] loadNibNamed:@"DetAlertCell" owner:self options:nil];
        cell = [listCells objectAtIndex:indexPath.row];
    }
}
....

Однако это не сработает. Это показывает мне пустой вид. Каждая ячейка создается с использованием .xib-файла и классов .h и .m. Есть ли что-то, что я пропускаю и должен сделать?

1 Ответ

2 голосов
/ 15 июня 2011

Только не вызывайте [localTableView dequeueReusableCellWithIdentifier:nil] и не ищите правильную ячейку для пути индекса.

Также вы говорите, что загружаете ячейки в viewDidLoad, тогда почему вы загружаете nib:

 [[NSBundle mainBundle] loadNibNamed:@"DetAlertCell" owner:self options:nil];

Они уже должны быть массивом, если они этого не делают.И зачем вам проверять, если строка равна 0, тогда загружать строку, все равно будет загружаться только первая строка.

Попробуйте это:

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
   return [listCells objectAtIndex:indexPath.row];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...