UICollectionView 是不是会滚动识别

Posted

技术标签:

【中文标题】UICollectionView 是不是会滚动识别【英文标题】:UICollectionView if will scroll recognizeUICollectionView 是否会滚动识别 【发布时间】:2014-04-07 16:30:34 【问题描述】:

我需要一些帮助。 我有UIcollectionView,我正在使用scrollToItemAtIndexPath:atScrollPosition:animated: 方法。我需要以某种方式识别集合视图是否会滚动到某个位置,或者是否需要position 上的项目并且不会滚动。 换句话说,如果滚动不会开始,滚动视图的委托方法将不会被调用。

感谢您的帮助

【问题讨论】:

你能显示一些代码吗 我是否理解正确,您想检查是否会调用滚动视图委托方法? 【参考方案1】:

如何检查您感兴趣的 indexPath 是否在 [UICollectionView indexPathsForVisibleItems] 中?

您还可以使用layoutAttributesForItemAtIndexPath 获取单元格的确切框架以确定其是否部分显示。

【讨论】:

【参考方案2】:

你可以使用

CGRect cellFrame = [collectionView.visibleCells.lastObject frame];
CGRect collectionViewVisibleRect = collectionView.bounds;
collectionViewVisibleRect.origin.y = collectionView.contentOffset.y;
if (CGRectContainsRect(collectionViewVisibleRect, cellFrame))
   //no scroll
else
   //scroll 

这并没有考虑到您可能拥有的 contentInset。

【讨论】:

以上是关于UICollectionView 是不是会滚动识别的主要内容,如果未能解决你的问题,请参考以下文章

如何知道 UICollectionView 是不是会在 scrollToItemAtIndexPath: 被调用后实际滚动?

滚动 UICollectionView 会导致父 UIView 中的 UITableView 将 Collection View 推出 Frame

UICollectionView 水平滚动 - 单元格排列成列而不是行

知道 UICollectionView 是不是正在滚动

UICollectionView 是不是滚动到索引?

手势识别器在其他 UICollectionViewCell 内的 UICollectionView 上不起作用