Невидимые клетки UicollectionView остаются выбранными [дублировать]IOS

Программируем под IOS
Ответить
Anonymous
 Невидимые клетки UicollectionView остаются выбранными [дублировать]

Сообщение Anonymous »

У меня есть uicollectionViewController , которая использует пользовательскую ячейку. Существует функция, вызываемой, когда пользователь нажимает на ячейку, чтобы отличить выбранную ячейку, я изменяю цвет фона ячейки на зеленый.
Проблема заключается в том, что когда пользователь нажимает на другую ячейку, предыдущая должна быть не выбранной, будет вызвана другая функция. До тех пор, пока CollectionView не прокручивается, он работает нормально, но когда пользователь прокручивает CollectionView и выбран, один выходит из видимого прямолинейного экрана, моя функция Deselect не работает, и будет две ячейки с зеленым фоном. < /p>

Это демонстрация: < /p>

< /p>

Вы можете видеть на ячейке с зеленым фон, и на другом, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другой, и другие End. < /p>

Вот методы выбора и отказа от выбора ячеек: < /p>

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

if let cell = collectionView.cellForItem(at: indexPath) as? CategoryCollectionViewCell {
cell.selectItem()
}
}

override func collectionView(_ collectionView: UICollectionView, shouldSelectItemAt indexPath: IndexPath) -> Bool {
for _cell in collectionView.visibleCells {
if let __cell = _cell as? CategoryCollectionViewCell {
__cell.deselectItem()
}
}

if let indexPath = collectionView.indexPathsForSelectedItems {
if indexPath.count > 0 {
if let _cell = collectionView.cellForItem(at: indexPath.first!) as? CategoryCollectionViewCell {
_cell.deselectItem()
}
}
}

return true
}


Подробнее здесь: https://stackoverflow.com/questions/443 ... y-selected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»