我UICollectionViewController
所有dataSource
和委托方法都正常运行。最近,当我选择时,我在每个单元格上添加了Flip View,当我选择另一个单元格时,第一个单元格正确地使用协议方法取消选择。
回答
1)我实现了自定义UICollectionView并添加了下面的代码,因为我在控制器中做了一些动画我必须这样调用它
// Little hack to call Controllers method to delesect the cell
- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated
{
NSLog(@"Programmtically cell-deselected %@", indexPath);
MyCell *cell = (MyCell*)[self cellForItemAtIndexPath:indexPath];
cell.selected = NO;
[self.delegate collectionView:self didDeselectItemAtIndexPath:indexPath];
[super deselectItemAtIndexPath:indexPath animated:animated]; //Not required!?
}
2)并且在主控制器中,当用户在已经选择的单元格上执行segueu时,我这样做
[self.collectionView deselectItemAtIndexPath:indexPath animated:YES];
这是正确的方法吗?这很好,我没有看到任何问题。也许我可以从控制器本身(在segue中)调用collectionView:self didDeselectItemAtIndexPath:indexPath]但不知何故我不喜欢这样,因为调用变得完全令人困惑。
[self collectionView:self.collectionView didDeselectItemAtIndexPath:indexPath];