【问题标题】:Show progress using SVProgressHUD in Swift在 Swift 中使用 SVProgressHUD 显示进度
【发布时间】:2019-07-06 02:45:16
【问题描述】:

如何在 Swift 中使用 SVProgressHUD 显示下载进度?我已经实现了以下代码,但它没有显示进度。

SVProgressHUD.show()
    Alamofire.download(
                url,
                method: .get,
                parameters: nil,
                encoding: JSONEncoding.default,
                headers: nil,
                to: destination).downloadProgress(closure: { (progress) in

                    DispatchQueue.main.async {
                        SVProgressHUD.showProgress(Float(progress.fractionCompleted))
                    }
                    print(progress.fractionCompleted)

                }).response(completionHandler: { (DefaultDownloadResponse) in

                    DispatchQueue.main.async {
                        SVProgressHUD.dismiss()
                    }
                })

【问题讨论】:

  • Alamofire 的 download 应该已经在主线程上运行,所以你不需要这些 DispatchQueue.main.async 闭包
  • 注释掉 SVProgressHUD.dismiss() 行。我认为您的网络请求响应如此之快,因此您的 hud 没有时间出现。

标签: ios swift swift4 svprogresshud


【解决方案1】:

一种解决方法是在进度达到 100% 0r 1.0 时关闭 SVGProgress。

还要检查https://github.com/SVProgressHUD/SVProgressHUD/issues/622?了解更多。

【讨论】:

    【解决方案2】:

    这个问题是 2 个月前的问题,但我会把它放在这里,因为它可能会对某人有所帮助。如果有人对 SVProgressHUD 未显示进度有疑问,请检查您的进度增量。它应该在 0 和 1 之间(因此可能的最小进度为 0,最大可能为 1),否则,显示的图像将是一个完整的圆圈,给人的印象是进度没有变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      相关资源
      最近更新 更多