ios - 如何在下载图像之前运行事件指示器?

标签 ios swift indicator activity-indicator

在图片下载之前,我想启动事件指示器。

这是我使用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/

相关文章:

ios - 查看 UICollectionViewCell 的调试?

ios - 从静态库中确定目标的构建配置类型

ios - Swift:全屏 UIImageView 不工作

ios - Swift 中的 Perlin 噪声发生器

Android:如何在 xml 布局中添加开/关指示器

iphone - 启用 iPhone 界面方向

ios - 未调用 SDWebImage 下载图像完成 block

ios - 解析错误 : PFObject does not have a member named 'createdAt'

android - Flutter - 使用 android 下载指示器下载文件

javascript - 如何从 Highcharts 中的 SMA 技术指标中获取周期值?