我有一个scrollView
with pagingEnabled
set to true
。这些页面中的每一页都包含一个覆盖整个屏幕的视频。使用for
循环和一个名为的类PlayerView
添加视频(不仅添加视频,还添加有关视频的信息)。在PlayerView
课堂上,我有一个功能可以开始/停止在相应页面中播放视频,并且一切正常。
self.player?.seek(to: kCMTimeZero)
我的问题是,只要包含该视频的页面不再可见(使用and ) ,我想将视频设置为它的开头并在那里停止(可以说是 0.0 秒self.player?.pause()
)。
在我的scrollView
我有一个功能,它检测出现了什么页面,并在用户从一个页面滚动到另一个页面时声明上一页(以索引的形式,例如当从第 2 页滚动到第 3 页时,该函数将打印:“1 2")。坚持这个例子:我想将第 2 页(索引:1)上的视频设置为 0 并暂停它。
创建滚动视图(在class HomeController: UIViewController, UIScrollViewDelegate
)
func initiateScrollView() {
//create scrollView with paging enabled
let scrollView = UIScrollView(frame: view.bounds)
scrollView.isPagingEnabled = true
scrollView.delegate = self
view.addSubview(scrollView)
//get page size
let pageSize = view.bounds.size
//three simple UIView are created (view1, view2, view3)
//array with individual views
let pagesViews = [view1, view2, view3]
//amount of views
let numberOfPages = pagesViews.count
//add subviews (pages)
for (pageIndex, page) in pagesViews.enumerated(){
//add individual pages to scrollView
page.frame = CGRect(origin: CGPoint(x:0 , y: CGFloat(pageIndex) * pageSize.height), size: pageSize)
scrollView.addSubview(page)
//add Subview with videoplayer frame to individual "pages"
let videoPlayerFrame = CGRect(x: 0, y: 0, width: pageSize.width, height: pageSize.height)
let videoPlayerView = PlayerView(frame: videoPlayerFrame)
page.addSubview(videoPlayerView)
}
//adjust size of scrollView
scrollView.contentSize = CGSize(width: pageSize.width, height: pageSize.height * CGFloat(numberOfPages))
}
你知道如何暂停前一页的视频吗?我将衷心感谢您的帮助!