UICollectionViewCell теряет цвет фона при прокрутке - PullRequest
0 голосов
/ 24 июня 2019

У меня есть UICollectionView.Он отображает 2 полноэкранные ячейки по вертикали.

Я бы хотел программно прокрутить одну ячейку в другую.

В настоящее время я делаю это с помощью триггера:

UIView.animate(withDuration: 2) {
    self.collectionView.scrollToItem(at: IndexPath(item: 1, section: 0), at: .centeredVertically, animated: false)
} 

Я вручную настраиваю анимацию следующим образом:scrollToItem слишком быстро.

Эта проблема заключается в том, что когда я запускаю эту функцию, первая ячейка, прокручиваемая за пределами экрана, теряет свой цвет фона.

enter image description here

Как ни странно, этого не происходит, если я просто прокручиваю из одной ячейки в другую.Только когда я запускаю прокрутку.

Мое представление коллекции стандартное, ничего особенного не происходит:

  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
    }
}
...