我有三个看起来完全相同的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引用已创建的子视图。
任何想法如何解决这个问题,以便在滚动时我能正确显示所有表格?好像细胞不能重复使用内容。感谢。
答案 0 :(得分:0)
视图只能有一个超级视图。因此,创建3个相同的CPTGraphHostingView视图。