如何在 moya swift 中添加进度视图?

Posted

技术标签:

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

它是否正确。这是使用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 为什么你删除了你的答案? 我重新检查了一次答案 【参考方案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)

        
    

【讨论】:

以上是关于如何在 moya swift 中添加进度视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 swift 中实现类似 Dropbox 的进度视图?

iOS - 如何在 Swift 的不同视图控制器中使用小视图

如何在 Moya 中添加参数?

Moya 构建错误

使用 Moya 获取响应标头

以swift语言在自定义表格视图单元格中更新进度视图下载