Вы можете отслеживать ячейки, которые должны отображаться на экране, используя collectionView:willDisplayCell:forItemAtIndexPath:
, и ячейки, которые собираются удалить, используя collectionView:didEndDisplayingCell:forItemAtIndexPath:
.
Затем используйте collectionView.convert, чтобы вычислить, какая из этих ячеек в данный момент больше всего отображается на экране, а затем автоматически воспроизвести видео в этой ячейке. Обновите автозапуск, когда пользовательская прокрутка обнаружена с помощью scrollViewDidScroll
и новая ячейка больше присутствует на экране.
Мы могли бы иметь такую структуру поста:
struct post {
videoURL: String?
imageURL: String?
}
В которой сообщение с видео будет иметь значение nUR в качестве значения imageURL, и наоборот. При получении сообщений вы можете поместить их в массив.
Затем вы можете просмотреть свои данные и использовать func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
, чтобы определить, какой тип UICollectionViewCell
отображать для определенного индекса в вашем массиве данных.