找到了!
我在其 x 轴上镜像了集合视图,但随后我还需要镜像单元格。这有点麻烦,因为 UICollectionView 没有“willDisplayCell”或类似的东西。
我就是这样做的:
第一步 - 在 viewDidLoad 中
self.collectionView.layer.transform = CATransform3DConcat(self.collectionView.layer.transform, CATransform3DMakeRotation(M_PI,0.0,1.0,0.0));
第二步 - 在 cellForItemAtIndexPath 函数中
[self performSelector:@selector(flipCell:) withObject:cell afterDelay:0.0];
第三步 - 创建新方法
-(void)flipCell:(YESMyZoneCollectionViewCell *)cell{
cell.layer.transform = CATransform3DConcat(cell.layer.transform, CATransform3DMakeRotation(M_PI,0.0,1.0,0.0));
}
祝你好运……
---大编辑---
我上面给出的解决方案并没有我想象的那么好,因为滚动的加载时间很长。
所以我做了类似的事情,没有“延迟执行”部分。
我用过这个:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSMutableArray *visibleCells = [[NSMutableArray alloc] initWithArray:[self.collectionView visibleCells]];
for (int i = 0; i < [visibleCells count]; i++) {
customCellObject *cell = [visibleCells objectAtIndex:i];
if (cell.isFlipped == NO) {
[self flipCell:cell];
}
}
}
我还必须在 cellForItemAtIndexPath 中设置 isFlipped 属性 NO,因为它们在重用时不会翻转...