Продолжайте выбирать ячейку в collectionView даже после collectionView.reloadData - PullRequest
0 голосов
/ 11 апреля 2020

Привет всем, это определенно чепуха, но я смущен, когда пытаюсь выбрать ячейку из моего collectionView.

Мне нужно сохранить выбранный indexPath и показать его при перезагрузке моего collectionView.

Когда я выбираю ячейку (после перезагрузки collectionView), я отображаю 2 выбранные ячейки вместо одной. Кажется, что новый выбранный indexPath обновляется не сразу, и поэтому я отображаю новую indexPath и старую indexPath пока я не прокручиваю ячейки ..

Проблема в cellForItemAt?

Это код

override func layoutSubviews() {
    super.layoutSubviews()

    daySelectedIndexPath = IndexPath(item: currentDay-1, section: 0)

    daysCv.selectItem(at: daySelectedIndexPath, animated: false, scrollPosition: .centeredHorizontally)

}

 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: daysreuseCellID, for: indexPath) as! DaysCell

       cell.isSelected = daySelectedIndexPath == indexPath ? true : false

       return cell
}

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    guard daySelectedIndexPath != indexPath else { return }

    collectionView.deselectItem(at: daySelectedIndexPath!, animated: true)

    daySelectedIndexPath = indexPath

}
...