CollectionViewCell发送先前的图像

时间:2018-10-21 21:37:50

标签: swift collectionview

我正在发送从collectionView选择的图像。问题是应用程序总是发送以前选择的图像。 indexPath有什么问题?

这是didSelectItemAt函数:

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let options = PHImageRequestOptions()
    options.deliveryMode = .highQualityFormat
    options.isNetworkAccessAllowed = true
    options.isSynchronous = true

    PHImageManager.default().requestImage(for: fetchResult.object(at: indexPath.item), targetSize: PHImageManagerMaximumSize, contentMode: .aspectFit, options: options, resultHandler: { image, error in   
        guard let image = image else { return }          
        self.image = image

    })

    performSegue(withIdentifier: "segue099", sender: self)

}

1 个答案:

答案 0 :(得分:0)

来自Docs

  

默认情况下,此方法异步执行。如果从后台线程调用它,则可以将options参数的isSynchronous属性更改为true,以阻止调用线程,直到请求的图像准备就绪或发生错误为止,此时Photos会调用结果处理程序。

所以

performSegue(withIdentifier: "segue099", sender: self)

在获取图像之前运行,导致其通过旧图像,因此true isSynchronous或将segue放入回调中