我使用UICollectionView
来显示与服务器相关的信息。此UICollectionView
允许单元格选择显示一些嵌套数据。不幸的是,如果用户在我的应用调用[collectionView reloadData]
期间触摸并保留任何单元格,则此单元格不再对触摸作出反应(collectionView:didSelectItemAtIndexPath:
方法未被调用)。
我可以选择除此之外的任何细胞。
我创建了可以重现此问题的简单应用程序:link
任何想法如何解决?
答案 0 :(得分:17)
看起来像一个错误(我相信有一个类似的问题,cell.selected = YES
没有-selectItemAtIndexPath:animated:scrollPosition:
会导致无法取消选择单元格。
但是如果你这样做:
[self.collectionView reloadItemsAtIndexPaths:[self.collectionView indexPathsForVisibleItems]];
而不是[self.collectionView reloadData]
它正在按预期工作。
更新:找到the answer of the issue mentioned above
另一个更新:看来这确实是一个错误。在iOS8模拟器上测试了原始项目,现在问题已解决。
答案 1 :(得分:2)
根据 @ Alladinian' 答案说,不是使用[self.collectionView reloadData]
,而是使用self.collectionView reloadItemsAtIndexPaths:.....
在您的演示中工作,我也尝试过使用
[self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]];
它也运作正常。