Отмена выбора ячеек, которые в данный момент не видны
Я пытаюсь отменить выбор ячеек, которые были ранее выбраны, но в настоящее время не отображаются в представлении коллекции. Я использую этот код:
let optionalSelectedItems = collectionView.indexPathsForSelectedItems()
if let selectedItems = optionalSelectedItems{
for indexPath in selectedItems{
self.collectionView.deselectItemAtIndexPath(indexPath, animated: true)
self.collectionView.delegate?.collectionView!(self.collectionView, didDeselectItemAtIndexPath: indexPath)
}
Есть некоторые довольно важные вещи, происходящие в моей реализации func collectionView(_:didDeselectItemAtIndexPath:)
, Отмена выбора запускает событие в другом представлении. Это приводит к ошибке, потому что я отменяю выбор ячеек, которые в настоящее время находятся за пределами экрана и, следовательно, даже не в памяти. Как поместить клетки в память на короткий промежуток времени? Мне нужно только отменить их выбор, поэтому я предполагаю, что 0,1 с будет более чем достаточно.
1 ответ
Решение
Вы можете хранить индексы выбранных строк в отдельном массиве и выбирать / отменять выделение ячеек после создания в
func collectionView(_ collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell