【问题标题】:How to stop video in UITableViewCell when new screen is pushed推送新屏幕时如何在 UITableViewCell 中停止视频
【发布时间】:2020-02-08 23:50:13
【问题描述】:

我确实有带有几个标签的标签栏控制器 - 其中一个标签如下所示:

  • 我有一个充满单元格的表格视图
  • 某些单元格包含AVPlayerAVPlayerLayer
  • 我正在使用委托方法tableView:didEndDisplayingCell:forRowAtIndexPath 来停止滚动到可见区域之外的视频

我需要什么:

  • 当我推送一个新控制器时,我需要停止当前正在播放的视频
  • 当我点击标签栏中的不同标签时,我也需要停止视频

我尝试实现func willMove(toWindow newWindow: UIWindow?),但它有一个烦人的副作用:我必须为所有推送的屏幕手动设置关闭手势。

关于如何解决该问题的任何替代想法?谢谢大家

【问题讨论】:

  • viewDidDisappear(_:) 呢?
  • 据我所知,他需要在单元格上下文中执行此操作。
  • 在选择后关闭该单元格上的播放器

标签: swift uitableview avfoundation avplayer


【解决方案1】:

您可以在具有视频单元格的UIViewControllerviewWillDisappear 函数中执行此操作。

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    for cell in tableView.visibleCells {
        (cell as VideoCell).stopVideo()
    }
}

【讨论】:

    猜你喜欢
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    相关资源
    最近更新 更多