У меня есть UICollectionView
.Он отображает 2 полноэкранные ячейки по вертикали.
Я бы хотел программно прокрутить одну ячейку в другую.
В настоящее время я делаю это с помощью триггера:
UIView.animate(withDuration: 2) {
self.collectionView.scrollToItem(at: IndexPath(item: 1, section: 0), at: .centeredVertically, animated: false)
}
Я вручную настраиваю анимацию следующим образом:scrollToItem
слишком быстро.
Эта проблема заключается в том, что когда я запускаю эту функцию, первая ячейка, прокручиваемая за пределами экрана, теряет свой цвет фона.
Как ни странно, этого не происходит, если я просто прокручиваю из одной ячейки в другую.Только когда я запускаю прокрутку.
Мое представление коллекции стандартное, ничего особенного не происходит:
collectionViewLayout = UICollectionViewFlowLayout()
collectionViewLayout.scrollDirection = .vertical
collectionView = UICollectionView(frame: .zero, collectionViewLayout: collectionViewLayout)
collectionView.backgroundColor = .clear
collectionView.showsVerticalScrollIndicator = false
collectionView.showsHorizontalScrollIndicator = false
collectionView.bounces = false
collectionView.register(HomeCell.self, forCellWithReuseIdentifier: "home_cell")
collectionView.register(HeaderCell.self, forCellWithReuseIdentifier: "header_cell")
addSubview(collectionView)
collectionView.fill()
Мои ячейки являются базовыми и
class HeaderCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .purple
}
required init?(coder aDecoder: NSCoder) {
return nil
}
}
class HomeCell: UICollectionViewCell {
override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = .red
}
required init?(coder aDecoder: NSCoder) {
return nil
}
}