Проблема в отображении пользовательского UITableViewCell - PullRequest
0 голосов
/ 31 мая 2010

У меня есть табличное представление, отображающее данные с использованием пользовательского UITableViewCell (скажем, cell1). При касании строки я изменяю пользовательскую ячейку на другую пользовательскую UITableViewCell (скажем, cell2). Также я увеличиваю размер строки выбранной ячейки для размещения большего количества элементов ячейки 2.

Моя проблема в том, что подход работает нормально, когда число строк в табличном представлении меньше. Когда количество строк увеличивается, при касании строки расширяются, но отображаемые данные такие же, как и у ячейки1. Кажется, что Cell2 вообще не загружен.

Жду ответа в ближайшее время .... Заранее спасибо.

1 Ответ

0 голосов
/ 01 июня 2010

Я отправляю свой код .... пожалуйста, дайте мне знать, если в этом есть проблема.

Мой cellForRowAtIndexPath выглядит так:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {





    if(indexPath == selectedCellIndexPath)

    {



        static NSString *Identifier1 = @"Identifier1";

        Identifier1 = @"cell2";

        CustomCellController1 *cell = (CustomCellController1 *)[tableView dequeueReusableCellWithIdentifier:Identifier1];

        if(cell == nil) {

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

            cell = rowTwoObject;

        }



        [cell setText:[test1Array objectAtIndex:indexPath.row]];    
        return cell;



    }



    else {





        static NSString *Identifier2 = @"Identifier2";

        Identifier2 = @"cell1";

        CustomCellController1 *cell = (CustomCellController1 *)[tableView dequeueReusableCellWithIdentifier:Identifier2];

        if(cell == nil) {

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

            cell = rowOneObject;

        }



        [cell setText1:[temp1Array objectAtIndex:indexPath.row]];

        [cell setText2:[temp2Array objectAtIndex:indexPath.row]];



        return cell;  





    }



}

didSelectRowAtIndexPath выглядит следующим образом:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {



    selectedCellIndexPath = indexPath;      

    [tableView reloadData];

}

heightForRowAtIndexPath выглядит следующим образом:

    -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {  

    if(selectedCellIndexPath != nil  

       && [selectedCellIndexPath compare:indexPath] == NSOrderedSame)  

        return 110;  



    return 60;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...