在图片下载之前,我想启动事件指示器。
这是我使用url的图片下载功能
extension UIImageView {
func downloadImage(from url : String){
let urlRequest = URLRequest(url: URL(string: url)!)
let task = URLSession.shared.dataTask(with: urlRequest){(data,response,error)in
if error != nil {
print("error...")
}
DispatchQueue.main.async {
self.image = UIImage(data:data!)
}
}
task.resume()
}
我的问题是我该怎么做? (抱歉我的英语不好)
最佳答案
您可以在您的方法中传递一个闭包,该闭包将在下载图片后执行
extension UIImageView {
func downloadImage(from url : String, completion: ((_ errorMessage: String?) -> Void)?){
let urlRequest = URLRequest(url: URL(string: url)!)
let task = URLSession.shared.dataTask(with: urlRequest){ (data,response,error) in
if error != nil {
completion?("error...")
}
DispatchQueue.main.async {
self.image = UIImage(data:data!)
completion?(nil)
}
}
task.resume()
}
}
在你的 ViewController 中
activityIndicator.startAnimating()
imageView.downloadImage(from: "...") { (err) in
if err != nil {
// error handler
}
self.activityIndicator.stopAnimating()
}
关于ios - 如何在下载图像之前运行事件指示器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42540423/