Отмена выбора ячеек, которые в данный момент не видны

Я пытаюсь отменить выбор ячеек, которые были ранее выбраны, но в настоящее время не отображаются в представлении коллекции. Я использую этот код:

        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
Другие вопросы по тегам