Я использую два CollectionView
в одном ViewController
.Каждый CollectionView
имеет 5 ячеек.Я также использую isSelected
для определения выбранной ячейки (и выделения выбранной ячейки) для каждой CollectionView
.В каждом CollectionView
может быть выделена только одна ячейка (выделено).
Все работает как надо, но есть одна проблема.
В симуляторе, когда я выбираю ячейку сИндекс от 0 до 3, все отлично работает.Но проблема возникает, когда я выбираю ячейку с индексом 4. Это выделяет ячейки с индексом 4 в обоих CollectionView
.
Это происходит только тогда, когда ячейка с индексом 4 другого CollectionView
не видна наэкран (я использую горизонтальную прокрутку для обоих видов коллекции, и только 3 из 5 ячеек видны одновременно на экране).
Ниже части моего кода:
var selectIndex = 1
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if collectionView == self.percentsCollectionView {
let cell:PercentCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: percentsCellIdentifiers[indexPath.item], for: indexPath) as! PercentCollectionViewCell
if selectIndex == (indexPath as NSIndexPath).row
{
cell.isSelected = true
}
else
{
cell.isSelected = false
}
return cell
}
else {
let cell:PersonCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: personsCellIdentifiers[indexPath.item], for: indexPath) as! PersonCollectionViewCell
if selectIndex == (indexPath as NSIndexPath).row
{
cell.isSelected = true
}
else
{
cell.isSelected = false
}
return cell
}
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
selectIndex = (indexPath as NSIndexPath).row
collectionView.reloadData()
}