我正在使用集合视图来显示“卡片”。当用户单击其中一张卡片时,视图会随着翻转动画而改变(通过在 didSelectItemAtIndexPath 中调用的函数)。如果用户触摸这些卡片中的另一张,他们可以单击另一张卡片,旧卡片将翻转回旧视图,新卡片将翻转到新视图。或者,他们可以再次单击原始卡并将其翻转回来。
问题
这很好用,除了当滚动到滚动视图中的卡片时,其他卡片似乎被翻转了。例如,我翻转集合视图中的第一张卡片(索引:0)。这翻转很好。我向下滚动,索引 9 的单元格出现翻转。
我试过的
我环顾四周,虽然我可以看到很多与 UICollectionView 和滚动有关的问题,但我无法弄清楚哪些是相同的,哪些不是。我还使用 NSLog 来确定是否已通过程序选择并翻转了随机翻转的视图卡,但它们没有。他们只是看起来。
我真的坚持这个想法。有人有什么想法吗?是因为我创建细胞的方式吗?在我的 viewDidLoad 中,我正在使用:(其中 cellImage 是我的单元格自定义类)
[self.collectionView registerClass:[cellImage class] forCellWithReuseIdentifier:@"MY_CELL"];
在我的 cellForItemAtIndexPath 中:
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; {
cellImage *cell = [cv dequeueReusableCellWithReuseIdentifier:@"MY_CELL" forIndexPath:indexPath];
cell.imageView.image = [UIImage imageNamed:[imageArray objectAtIndex:indexPath.item]];
[cell.label addSubview:cell.imageView];
cell.label.backgroundColor = [UIColor whiteColor];
cell.label.layer.borderColor = [UIColor grayColor].CGColor;
cell.label.layer.borderWidth = 1.0f;
return cell;
}
有人有什么想法吗?如果您需要更多代码,请给我留言,谢谢!