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秒的延迟来显示它们。