Как остановить видео в UITableViewCell при нажатии на новый экран - PullRequest
0 голосов
/ 11 октября 2019

У меня есть контроллер панели вкладок с несколькими вкладками - одна из вкладок выглядит так:

  • У меня табличное представление, заполненное ячейками
  • Некоторые из ячеек содержат AVPlayer и AVPlayerLayer
  • Я использую метод делегата tableView:didEndDisplayingCell:forRowAtIndexPath, чтобы остановить видео, прокручиваемые из видимой области

Что мне нужно:

  • Когда я нажимаю новый контроллер, мне нужно остановить видео, которое воспроизводится в данный момент
  • Когда я нажимаю на другую вкладку в панели вкладок, мне также нужно остановить видео

Я пытался реализовать func willMove(toWindow newWindow: UIWindow?), но у него есть побочный эффект, что я должен вручную настроить жест отклонения для всех нажатых экранов.

Есть идеи, как решить эту проблему? Спасибо, ребята

1 Ответ

1 голос
/ 11 октября 2019

Вы можете сделать это в viewWillDisappear функции UIViewController, в которой есть видеоэлементы.

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

    for cell in tableView.visibleCells {
        (cell as VideoCell).stopVideo()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...