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

标签 ios multithreading swift

我知道这一点:

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/

相关文章:

ios - 重新排序 UIImage 数组中的元素

java - 仅使用 ExecutorService 中的线程子集

ios - 如何检查 WKWebView URLAuthenticationChallenge 是否失败或成功?

ios - Swift 解析具有可变类型的 JSON

ios - 带有 NSURL 到音频文件的 UIActivityViewController 只显示空投

ios - 将 JSON 导入核心数据

linux - 使用 kernel_thread 创建内核线程

ios - 使用 alamofire json swift 3.0 在我的标签中打印 .get

iOS URL Scheme Microsoft Outlook App

python - Flask-SocketIO eventlet 无法切换到不同的线程