在UICollectionView中,我添加了一个UICollectionViewCell(由iPadCellCollectionViewCell类实现),其中包含另一个视图,即Core-Plot Graph(CPTGraphHostingView类).
我有一个名为X的类来实现UICollectionViewDelegate和UICollectionViewDataSource.
在类X中,我构建了我的视图的每个单元格(在ViewDidLoad中)Core-Plot Graph,并且我有以下代码将图形链接到UICollectionViewCell的单元格
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString* cellId = @"ChartCollectionId"; iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath]; MyChart* chart = [_charts objectAtIndex:indexPath.row]; cell.hostingView.hostedGraph = chart.barChart; return cell;
}
它的工作正常,我的所有图形都正确显示在屏幕上.当用户滚动视图时,会出现此问题,然后一个或多个单元格变为“空白”.我真的不明白为什么
我找到了一个解决方法,而不是在Interface Builder中的UICollectionViewCell中添加CPTGraphHostingView,我自己构建并且之前的代码变成:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { static NSString* cellId = @"ChartCollectionId"; iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath]; [cell.contentView addSubview:[_hostingViews objectAtIndex:indexPath.row]]; return cell;
}
有了这个代码,一切都正常.有没有任何解释为什么当我在IBIC中添加CPTGraphHostingView在UICollectionViewCell不起作用?
每次调用该方法时调用“addSubview”是一个问题吗?没有内存泄漏?
解决方法
细胞不会看不见,有时在快速滚动时,它们被错放在界限之外.
所以如果你通常每行有3个项目,你会得到一行中的第四个项目,但在下一行的第一个位置没有任何项目.
如果将UICollectionView设置为不剪辑到边界,并将其移动到UI的顶部,
你可能会看到这个对齐的单元格.
我的解决方案到目前为止还没有使用sectionInsets,并且通过在section标题中使用contentInset和一些空格来包围它.
我也在Twitter上发现了一些其他的人,同样的问题.还有一个关于它的错误报告:12353513
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。