完成PHAsset的获取后,隐藏UIProgressView并完成动画制作

Jor*_*n H 5 uiprogressview ios phasset

我正在执行一个请求获取图像资产的请求PHAsset,我正在使用允许我提供UIProgressView来指示进度progressHandler PHImageRequestOptions.当调用该处理程序时,它为我提供了progress所以我在进度视图上设置了进度,但我也通过它设置了新进度的动画setProgress:animated:.我现在需要弄清楚如何在进度达到1.0时隐藏进度视图,但是直到它完成动画到1.0.

例如,它可能开始下载资产,用0.2调用进度回调,然后下一个回调可能是1.0.如果我在获得1.0后立即隐藏进度条,用户将看不到它的动画为1.0,它可能会消失,例如它在0.7时.

我的问题是,我怎么知道它何时完成了对新进度值的动画,因此知道何时是隐藏进度视图的最佳时机?

let options = PHImageRequestOptions()
options.networkAccessAllowed = true
options.progressHandler = { (progress: Double, _, _, _) -> Void in
     dispatch_async(dispatch_get_main_queue()) {
         self.barProgressView.setProgress(Float(progress), animated: true)
         //FIXME: Can't do this, otherwise it will hide before animation completes
         self.barProgressView.hidden = (progress <= 0.0 || progress >= 1.0)
    }
}

PHImageManager.defaultManager().requestImageForAsset(photoAsset, targetSize: targetSize, contentMode: .AspectFit, options: options) { (result: UIImage?, info: Dictionary?) -> Void in
    //do something with the image
}
Run Code Online (Sandbox Code Playgroud)