我有一个分页的UICollectionView,每页有一个单元格。但是,我的UICollectionViewCells渲染速度很慢(第三方库,没有选项)。因此,作为优化,我需要将单元格预渲染到当前页面的左侧和右侧,因此滚动是平滑的。
我所做的是,在我的自定义UICollectionViewLayout中,在检查要查看应返回哪些单元格的UICollectionViewLayoutAttributes之前,将传递的矩形开始1点,请参见此处:
- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect {
CGRect outsetRect = CGRectInset(rect, -1, 0);
return [_myAttributes filter:^BOOL(UICollectionViewLayoutAttributes *attribs) {
return CGRectIntersectsRect(attribs.frame, outsetRect);
}];
}
这可以按预期工作。然而,当实际的UICollectionView做了它的事情时,它似乎忽略了屏幕外的单元格并仅为第一个单元格调用cellForItemAtIndexPath
,而不是向右(或左)单元格调用。{/ p>
任何想法是怎么回事?感谢
答案 0 :(得分:1)
为了将来参考,我通过以下方式解决了这个问题:
干杯