Pertanyaan Sembunyikan UIProgressView setelah mengambil untuk PHAsset selesai dan kemajuan selesai menjiwai


Saya melakukan permintaan untuk mendapatkan aset gambar yang diberikan a PHAsset, dan saya menggunakan UIProgressView untuk menunjukkan kemajuan menggunakan progressHandler  PHImageRequestOptions memungkinkan saya untuk menyediakan. Ketika handler itu dipanggil, itu memberi saya progress jadi saya mengatur kemajuan pada tampilan kemajuan tetapi saya juga menggerakkan kemajuan baru itu melalui setProgress:animated:. Saya sekarang perlu mencari tahu cara menyembunyikan tampilan kemajuan setelah kemajuan mencapai 1.0, tetapi tidak sampai selesai beranimasi menjadi 1.0.

Misalnya, mungkin mulai mengunduh aset, sebut callback kemajuan dengan 0,2, maka callback berikutnya mungkin 1,0. Jika saya menyembunyikan bilah kemajuan segera setelah saya mendapatkan 1,0, pengguna tidak akan melihatnya bernyawa ke 1,0, itu akan menghilang mungkin sementara itu di 0,7 misalnya.

Pertanyaan saya adalah, bagaimana saya bisa tahu ketika sudah selesai menjiwai ke nilai kemajuan yang baru, karena itu tahu kapan saat yang tepat untuk menyembunyikan tampilan kemajuan?

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
}

5
2017-07-27 00:34


asal


Jawaban: