EDIT:
Проблема решена. Я следую руководству YouTube по созданию YouTube из LBTA.
Мой homeController содержит 4 ячейки, которые можно прокручивать по горизонтали. каждая ячейка (также UICollectionViewCell) имеет разные методы выборки для загрузки данных из Firebase.
У меня есть следующий код для прокрутки:
// в моем setupCollectionView
if let flowLayout = collectionView?.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.scrollDirection = .horizontal
flowLayout.minimumLineSpacing = 0
}
У меня также есть:
override func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let index = Int(targetContentOffset.pointee.x / view.frame.width)
let indexPath = IndexPath(item: index, section: 0)
menuBar.collectionView.selectItem(at: indexPath, animated: true, scrollPosition: .centeredHorizontally)
setTitleForIndex(index: index)
}
У меня есть строка меню, прикрепленная к collectionView, строка меню работает нормально. Но UICollectionViewCell этого не делает.
Когда я проверяю его, прокручивая влево и вправо, индексные числа повсюду. Например, когда я прокручиваю до первой ячейки, она показывает 2 или 3, а иногда ничего не показывает. Когда я пытаюсь прокрутить влево первую ячейку, я все еще вижу изменения номера ячейки.
Я хотел бы спросить, какие подходящие методы используются для идентификации клеток в моем случае? Пожалуйста, предоставьте несколько примеров кодов. Благодарю. Изображение ниже показывает мое текущее состояние.