启用分页时,如何防止此意外的UICollectionView行为?

时间:2014-08-17 02:33:08

标签: ios objective-c uicollectionview

我看到UICollectionView中我不理解的行为,并希望阻止。

我有一个UICollectionView,里面有一堆自定义单元格。它水平滚动,并启用了分页。我有allowsSelectionallowsMultipleSelectionscrollsToTop = NO。

我有单身&双击每个单元格上的UITapGestureRecognizer

我让shouldSelectItemAtIndexPath委托方法返回NO,因为我正在通过这些手势识别器管理对单元格所采取的操作。

这就是发生的事情 - 当我点击集合视图中最右边的最后一个单元格时,它会自动向后(向左)滚动,将我刚刚选择的项目移出屏幕并且不再可见,并且然后触发手势识别器处理程序。

如果我在手势识别器选择器中查看myCollectionView.visibleCells,我会看到该单元格未包含在其中,因为它已在屏幕上滚动。

只有在启用分页时才会发生这种情况 - 如果我将其关闭并点击最后一项,一切都按预期工作,并且不会自动向后滚动。

为什么会发生这种情况,如何防止它?我希望在启用和不启用分页的情况下发生相同的行为,但现在不能。

如何在调用手势识别器选择器之前阻止UICollectionView自动滚动?

修改

如果我继承我的UICollectionViewFlowLayout并覆盖:

-(CGSize) collectionViewContentSize {
    return CGSizeMake(10000, CGRectGetHeight(self.collectionView.frame));
}

设置为任意高的数字,不会自动向后滚动。由于contentSize

,这种情况似乎正在发生

0 个答案:

没有答案