Ios 完成PHAsset的提取并完成进度动画制作后隐藏UIProgressView

Ios 完成PHAsset的提取并完成进度动画制作后隐藏UIProgressView,ios,uiprogressview,phasset,Ios,Uiprogressview,Phasset,我正在执行一个请求,以获取给定PHAsset的图像资源,并使用UIProgressView来指示进度,使用progressHandlerPHImageRequestOptions允许我提供。调用该处理程序时,它向我提供进度,因此我在进度视图上设置进度,但我也通过setProgress:animated:为新进度设置动画。我现在需要弄清楚,一旦进度达到1.0,如何隐藏进度视图,但直到它完成动画设置到1.0为止 例如,它可能开始下载资产,用0.2调用进度回调,然后下一个回调可能是1.0。如果我在获得

我正在执行一个请求,以获取给定
PHAsset
的图像资源,并使用
UIProgressView
来指示进度,使用
progressHandler
PHImageRequestOptions
允许我提供。调用该处理程序时,它向我提供
进度
,因此我在进度视图上设置进度,但我也通过
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
}
let options=PHImageRequestOptions()
options.networkAccessAllowed=true
options.progressHandler={(进度:Double,,,,->中的Void
dispatch\u async(dispatch\u get\u main\u queue()){
self.barProgressView.setProgress(浮动(进度),动画:true)
//无法执行此操作,否则它将在动画完成之前隐藏
self.barProgressView.hidden=(进度=1.0)
}
}
PHImageManager.defaultManager().requestImageForAsset(photoAsset,targetSize:targetSize,contentMode:.AspectFit,options:options){(结果:UIImage?,信息:Dictionary?)->Void in
//对图像做些什么
}