我有一个包含UICollectionView的viewController,我在其中实现了委托方法shouldSelectItemAtIndexPath和didSelectItemAtIndexPath。shouldSelect方法按预期工作,并为所选的每个单元格调用。
即使被多次点击,也不会在第一个被点击的单元格上调用didSelect方法。但是,如果您点击第二个单元格,则会调用didSelect方法,但indexPath.item值是针对之前点击的单元格的。
例如,我点击collectionView中的第一个单元格,调用shouldSelect,它的indexPath.item值= 0。不调用DidSelect,即使在单元格上多次点击也是如此。
如果我点击任何其他单元格,例如,collectionView中的第四个单元格,shouldSelect被调用,它的indexPath.item值= 3。didSelect也被调用,但它的indexPath.item值=0(之前选择的单元格)。
如果我继续选择不同的单元格,didSelect将继续被调用,但indexPath.item值始终是针对先前选择的项。如果我多次点击一个单元格,直到我点击另一个单元格,didSelect才会被调用。
有人吗?我被难住了。所有其他数据源和委托方法似乎都工作得很好。委派和数据源在故事板中连接正确。
发布于 2013-01-09 03:28:01
确保您的
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath实际上并不是
- (void)collectionView:(UICollectionView *)collectionView didDeSelectItemAtIndexPath:(NSIndexPath *)indexPath(DidDeSelect与DidSelect)
我也有同样的问题。
https://stackoverflow.com/questions/13847142
复制相似问题