我的应用程序有一个UIScrollView,其中包含一系列视频缩略图。当您触摸缩略图时,缩略图开始播放视频。但是,当您从滚动视图的可见屏幕区域滚动视图时,视频(显然)不会停止播放。
我希望能够检测到单元格何时离开滚动视图的可见屏幕,但我不确定观察此更改的正确方法是什么。我可以想到几个方面,但我想以“正确”的方式做到这一点。我应该怎么做呢?
答案 0 :(得分:0)
我知道一种检查一帧是否在另一帧内的方法。我相信你可以在你的情况下使用它,但你需要设置自己的逻辑和放大器。相应地放置它。基本大纲指南如下:
if (CGRectContainsRect(self.view.bounds, videoThumbNailFrame)) {
// videoThumbnail is Completely Inside
}else
{
if (videoThumbNailFrame.origin.y < self.view.bounds.origin.y) {
//vertically outside
}
if (videoThumbNailFrame.origin.x < self.view.bounds.origin.x) {
// horizontally outside
}
}
可能您可以选择在scrollView的委托方法上执行此操作。 -(void)scrollViewDidEndDecelerating:(UIView *)scrollView
希望在某种程度上有所帮助。
答案 1 :(得分:0)
有两个步骤:
计算scrollView的可见Rect
CGRect visibleRect;
visibleRect.origin = scrollView.contentOffset;
visibleRect.size = scrollView.bounds.size;
检查当前正在播放的视频帧是否与visibleRect相交。如果是,则将其保持播放,如果不是,我们将其停止。
if(CGRectIntersectsRect(visibleRect,videoFrame)){
//什么都不做
其他{
//停止视频
}