Привет всем, это определенно чепуха, но я смущен, когда пытаюсь выбрать ячейку из моего 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
}