1
セルが表示されているときにカルーセルでビデオを再生する
私はこれに似たものを持っています: ご覧のとおり、テーブルビューがあり、各テーブルビューセルにコレクションビューがあります。コレクションビューは水平(カルーセルを複製するため)なので、ユーザーは画像やビデオのギャラリーをスワイプできます。これを描く別の方法は次のとおりです。 コントローラー->テーブルビュー->テーブルビューセル->コレクションビュー(カルーセル)->コレクションビューセル(カルーセル画像/ビデオ) 私が達成しようとしているのは、ユーザーがテーブルビューをスクロールすると、カルーセル内のビデオが自動的に再生されるようにすることです。もちろん、それを実現するには、次のことを行う必要があります。 コレクションビューが画面に表示されているかどうかを確認します。 表示されているコレクションビューのセルがビデオであるかどうかを確認します(コレクションビューのすべてのセルがビデオではなく、一部は画像です)。 2つの別々のテーブルビューセルにある2つのビデオが同時に再生されていないことを確認します。最初に表示されるテーブルビューセルのみに再生ビデオが必要です。 ただし、これは言うより簡単です。私がしている、以前に尋ねた私は今それを行う方法を知っているので、ビューが画面上に表示されているかどうかを判断する方法。 私の質問は、コードをどのように構造化すべきかを中心に展開しています。 私のコントローラークラスには、次のものがあります。 func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { isCollectionViewVisible() } func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { if (!decelerate) { isCollectionViewVisible() } } func isCollectionViewVisible() { for visibleCell in self.tableView.visibleCells { guard let cell = visibleCell as? MyTableViewCell else { continue } …