UITableViewCells не появляются изначально - PullRequest
0 голосов
/ 26 января 2012

У меня есть три UITableView, которые должны выглядеть одинаково. Каждый помещен в различное подпредставление UIScrollView. Когда я прокручиваю, я вижу каждую таблицу. Первая таблица выглядит идеально. Однако для второй и третьей таблиц отображается только цвет фона.

tableView: cellForRowAtIndexPath: вызывается для каждой строки каждой таблицы, где я вставляю подпредставление в contentView ячейки. Подпредставление уже было создано до вызова этого метода и повторно используется в трех таблицах для данной строки (при попытке сделать таблицы идентичными).

Я сделал два интересных открытия:

  • Хотя ячейка изначально не отображается, после прокрутки она появится, чтобы скрыть строку, а затем снова показать ее.
  • Когда ячейка появляется после прокрутки, она перемещается из другой таблицы. Он больше не отображается в таблице, где он показывался.

Вот мой код:

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

    static NSString *CellIdentifier = @"PlotCellID";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"PlotCell" owner:self options:nil];

        if ([nib count] > 0)
            cell = self.plotCell;
        else
            NSLog(@"Failed to load AlertCell nib!");
    }

    // Set up the cell...
    NSUInteger row = [indexPath row];
    AppDelegate *del = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    ResultSet *rs = del.resultPlots;

    CPTGraphHostingView *cellPlotView = [rs.hostingViews objectAtIndex:row];
    cellPlotView.frame = cell.contentView.bounds;

    cellPlotView.autoresizingMask = UIViewAutoresizingFlexibleWidth;    
    [cell.contentView insertSubview:cellPlotView atIndex:0];

    return cell;
}

cellPlotView ссылается на уже созданное подпредставление.

Есть идеи, как это исправить, чтобы я мог видеть все мои таблицы, правильно отображаемые при прокрутке? Как будто клетки не могут повторно использовать контент. Благодаря.

1 Ответ

0 голосов
/ 26 января 2012

Просмотр может иметь только одно суперпредставление. Поэтому создайте 3 идентичных представления CPTGraphHostingView.

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