swift UITableViewCell中的多个视频播放依赖于Scroll

时间:2015-09-21 13:41:24

标签: ios swift uitableview video uiscrollview

您好我正在尝试申请。

就是这个应用程序(我无法在stackoverflow中上传视频..所以我链接了我的博客和上传的视频)

http://blog.naver.com/cooksunghun/220488172371

喜欢这个应用程序。

tableview中有多个视频。

但播放视频只有一个talbleViewCell

我试过,我制作了tableViewCell并嵌入了视频。但我不能发挥作用,只播放一部分取决于滚动...(我是关于编程T_T的新手)

我尝试使用scrollViewDidScroll和VisibleCells

func scrollViewDidScroll(scrollView: UIScrollView) {
    let cell = VideoCell()
    let visibleCell = tableView.visibleCells 
    var count = visibleCell[0]
    switch count {
        case visibleCell[0] : cell.playVideo()
        case visibleCell[1] : print("test2")
        case visibleCell[2] : print("test3")
        case visibleCell[3] : print("test4")
        default : print("testDefault")
    }
}

我希望有人能提出想法。谢谢! (抱歉英文不好) 我在等你的想法!

1 个答案:

答案 0 :(得分:0)

也许现在为时已晚,但你走错了路。您不需要UIScrollViewDelegate方法,只需要UITableViewDelegate;

中需要此方法的方法
- tableView:willDisplayCell:forRowAtIndexPath:

为了什么?根据Apple文档;

  

表视图在使用之前将此消息发送到其委托   单元格绘制一行,从而允许委托自定义   显示之前的单元格对象。这个方法给代表一个   有可能覆盖表格前面设置的基于状态的属性   视图,例如选择和背景颜色。代表之后   返回时,表视图仅设置alpha和frame属性,以及   然后只有当它们滑入或滑出时动画行。

因此,根据滚动方向,当您的下一个单元格准备显示时,此方法会触发,您需要准备要在此方法中播放的视频内容。

- tableView:didEndDisplayingCell:forRowAtIndexPath:

为了什么?根据Apple文档;

  

使用此方法检测何时从表视图中删除单元格,如   反对监视视图本身以查看它何时出现或   消失。

所以,根据滚动方向,你的细胞最后一个看到的细胞将准备摧毁。同时,你的下一个细胞将准备展示。您需要准备好在此停止您的视频内容。您未提供有关视频内容类的任何信息,可能是MPMoviePlayerControllerAVFoundation,因此请搜索如何准备视频内容以停止播放。