UICollectionView 在滚动时响应?

Posted

技术标签:

【中文标题】UICollectionView 在滚动时响应?【英文标题】:UICollectionView responding while being scrolled? 【发布时间】:2013-03-08 10:49:15 【问题描述】:

我有一个 UICollectionView 填充了一些单元格,我实现了方法 - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath 这就像一个魅力,但它在滚动时不起作用。这是一个问题,因为滚动非常敏感,因此当我打算推送一个单元格并调用该方法时,我最终滚动没有结果。

所以我想知道如何解决这个问题并想出了这个:

我可以简单地将方法设置为在滚动时响应吗? 如果不是 - 我可以简单地让它只有在您使用 2 个手指时才会发生滚动?将 2 个动作分开。

提前感谢

【问题讨论】:

【参考方案1】:

UICollectionViewCell 的选择发生在您点击它时。水龙头应该很短并且在一个地方。如果你滚动,你可能没有点击右。如果是这种情况,在使用 Mail 等内置应用程序时也会发生这种情况。

UICollectionView 使用UITapGestureRecognizer 来识别单元格的选择。此手势识别器不允许在这种情况下可能对您有所帮助的特定设置。

您也许可以将 UIPanGestureRecognizer 更改为需要 2 个手指,但您应该真正考虑一下是否是您想要的。你最好按照 Apple 的意思来使用它,用户已经习惯了。

也就是说,这里是关于集合视图手势支持的文档页面: http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/IncorporatingGestureSupport/IncorporatingGestureSupport.html

您可以使用它来更改内部使用的UIPanGestureRecognizerminimumNumberOfTouches 属性。但同样,我认为你不应该这样做。

【讨论】:

以上是关于UICollectionView 在滚动时响应?的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView:激活、滚动到并将第一响应者分配到远处的单元格

滚动 UICollectionView 时忽略嵌入式 UIButtons 的触摸事件

UICollectionView 神秘地延迟触摸直到滚动

为啥 UICollectionView 不滚动其中的 UIButtons?

UICollectionView 在滚动后显示错误的单元格 - 出队问题?

向上滚动时保持 UICollectionView 中的滚动位置