Ios 如何仅用一个UIImageView显示相册中的所有照片?

Ios 如何仅用一个UIImageView显示相册中的所有照片?,ios,multithreading,swift,Ios,Multithreading,Swift,我知道这一点: imageView.image = aImage 现在我想显示许多照片,即相册中的所有照片 let fetchResult = PHAsset.fetchAssetsWithLocalIdentifiers(Array(photoIDSet), options: nil) let imageRequestOptions = PHImageRequestOptions() imageRequestOptions.synchronous = true imageRequestOpt

我知道这一点:

imageView.image = aImage
现在我想显示许多照片,即相册中的所有照片

let fetchResult = PHAsset.fetchAssetsWithLocalIdentifiers(Array(photoIDSet), options: nil)
let imageRequestOptions = PHImageRequestOptions()
imageRequestOptions.synchronous = true
imageRequestOptions.resizeMode = .Fast

fetchResult.enumerateObjectsUsingBlock({
    fetchedObject, _, _ in
    if let asset = fetchedObject as? PHAsset{
        PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: specialSize, contentMode: .AspectFit, options: imageRequestOptions, resultHandler: {
            image, _ in
            dispatch_async(dispatch_get_main_queue(), {
                imageView.image = image
            })
        })
    }
})
上面的代码没有按预期工作。如果幸运的话,它只会改变一次


有办法吗?

我发现了问题所在。整个EnumerateObjectsSusingBlock()方法在一个runloop中运行,当enumerate方法用完时,它只对最后一个映像imageView提交一个更改


如何修复它?使用
-performSelector:withObject:afterDelay:
在函数结束时调用函数self。记住离开一个出口。

创建一个资产数组。逐个从资源中获取图像,并通过在两个图像之间保持1秒的延迟来显示它们。