2

UICollectionViewController所有的dataSource和委托方法都表现正确。最近,当我选择时,我在每个单元格上添加了翻转视图,当我选择另一个单元格时,第一个单元格会使用协议方法正确取消选择。

  1. 现在我有一个场景,一旦我选择了单元格,然后它就会被翻转。用户在 FlipView 上执行 segue thru' 按钮
  2. 当我返回时,该单元格仍然被选中,但是当我选择另一个单元格时,didDeselect 永远不会在第一个集合视图中被调用。

回答

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];
4

0 回答 0