取消选择当前不可见的单元格

deselecting cells that are currently not visible

我正在尝试取消选择之前已选择但当前在集合视图中不可见的单元格。我正在使用此代码:

        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 秒就足够了。

您可以在

中创建后将所选行的索引存储在单独的数组和 select/deselect 单元格中
func collectionView(_ collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell