带有 pagingEnabled 的 UICollectionView 滚动动作控件

Posted

技术标签:

【中文标题】带有 pagingEnabled 的 UICollectionView 滚动动作控件【英文标题】:UICollectionView scroll action control with pagingEnabled 【发布时间】:2014-08-02 10:19:47 【问题描述】:

我有正方形大小的UIView(width: 320, height:320) 可以在UICollectionView 内播放视频,并在我的项目中水平滚动。此集合视图的 pagingEnbled 设置为 YES。

我的问题是当用户滚动到下一个视频时,它会自动播放下一个视频,因为我设置为在cellForItemAtIndexPath 中播放视频。但是,我想要做的是等待播放视频,直到用户完成滚动并在下一个单元格完全可见后播放视频。此外,由于前一个单元格中的视频仍在播放,因为应该播放内容。总而言之,我想防止集合视图在滚动时设置可见单元格。我想我需要使用UIScrollView contentOffset 来实现这一目标。但我不知道该怎么做。如果你们给我这个问题的提示,那将非常有帮助。谢谢!

【问题讨论】:

不要在cellForRowAtIndexPath 中设置播放,而是在didSelectRowAtIndexPath 中设置播放。它将允许用户选择然后播放。 【参考方案1】:

你可以使用

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

拖动完成后,您可以使用此 UICollectionView 方法播放包含在可见单元格中的视频

- (NSArray *)indexPathsForVisibleItems 

【讨论】:

谢谢。但这不是我想要的。我想我应该更清楚这个问题。我想要做的是在用户滚动到下一个单元格时播放前一个单元格中的视频并停止下一个单元格中的视频。所以,我认为我需要重置滚动值而不仅仅是可见单元格。我将编辑我的问题 可能不是你想要的,但肯定是你问的:)

以上是关于带有 pagingEnabled 的 UICollectionView 滚动动作控件的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 UIScrollView 和 pagingEnabled=YES 禁用反弹

Swift UIScrollView 在没有 pagingEnabled 的情况下捕捉到子视图宽度

React-Native:使用 pagingEnabled 时获取 FlatList 中的当前页面

在导航和状态栏下使用 pagingEnabled 扩展垂直 UIScrollView

从 UITableView pagingEnabled 获取可见单元格

如何检测 UIScrollView 的下一页编号为'scrollView.pagingEnabled' = YES?在'scrollViewDidEndDragging'?