我知道这一点:
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
})
})
}
})
上面的代码没有按预期工作。如果幸运的话,它只会改变一次。
有办法吗?
最佳答案
我发现问题了。整个 enumerateObjectsUsingBlock() 方法在一个运行循环中运行,当 enumerate 方法运行完时,它只向 imageView 提交一个更改,即最后一张图像。
如何解决?使用-performSelector:withObject:afterDelay:
在函数末尾调用函数self。记住留有导出。
关于ios - 如何仅用一个 UIImageView 显示相册中的所有照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32818221/