【问题标题】:how to add progress view in moya swift?如何在 moya swift 中添加进度视图?
【发布时间】:2018-03-29 04:34:35
【问题描述】:

如何在 moya swift 中添加进度视图? 它是否正确。这是使用progressblock的正确方法吗?

let instance = MoyaProvider<ServiceType>()

    self.view.showLoadingHUD()

    instance.request(.GetRouteDetail, callbackQueue: DispatchQueue.main, progress: { (response) in

        if response.completed{

            self.view.hideLoadingHUD()
        }else{

            self.view.showLoadingHUD()
        }

    }) { (result) in

        switch result{
        case .success(let response):
            print(response)

        case .failure(let error):

            print(error)
            self.view.hideLoadingHUD()
        }
    }

【问题讨论】:

  • @Anbu.karthik 为什么你删除了你的答案?
  • 我重新检查了一次答案

标签: ios swift swift4 moya


【解决方案1】:

您可以仅在结果闭包中简单地隐藏您的LoadingHUD

let instance = MoyaProvider<ServiceType>()

self.view.showLoadingHUD()

instance.request(.GetRouteDetail, callbackQueue: DispatchQueue.main, progress: { (response) in
// You can update the progress percent ...here or ignore it
}) { (result) in
    self.view.hideLoadingHUD()

    switch result{
    case .success(let response):
        print(response)
    case .failure(let error):
        print(error)
    }
}

【讨论】:

  • 如果 api 失败会怎样?
  • @VasanthanPrem - 如果 api 失败,它会自动到达失败部分
【解决方案2】:

只需修改成功或失败块内的hideLoadingHud。 bz 那部分结果处理程序

 let instance = MoyaProvider<ServiceType>()

    self.view.showLoadingHUD()

    instance.request(.GetRouteDetail, callbackQueue: DispatchQueue.main, progress: { (response) in



    }) { (result) in
         self.view.hideLoadingHUD()
        switch result{
        case .success(let response):
            print(response)

        case .failure(let error):

            print(error)

        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多