У меня есть три 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 ссылается на уже созданное подпредставление.
Есть идеи, как это исправить, чтобы я мог видеть все мои таблицы, правильно отображаемые при прокрутке? Как будто клетки не могут повторно использовать контент. Благодаря.