【问题标题】:Show loading image until response显示加载图像直到响应
【发布时间】:2021-02-24 16:12:08
【问题描述】:

我通过 AlamoFire 向 REST API 发送音频文件并获得 JSON 响应。同时,我想显示加载图像(例如动画圆圈),直到收到响应。我目前的解决方案是:

let voiceData = try? Data(contentsOf: audioRecorder.url)
let uploadUrl = "<server ip>"
    
AF.upload(multipartFormData: { multipartFormData in
   multipartFormData.append(voiceData!, withName: "file", fileName: "recording.m4a", mimeType: "audio/mpeg")
},
to: uploadUrl, method: .post)
.responseJSON { resp in
    print(resp)
}

现在如何在我的 SwiftUI 视图中显示加载图像?

【问题讨论】:

标签: swiftui alamofire


【解决方案1】:

我不确定 AlamoFire,但为了并行做两件事,你必须使用异步方法,所以这是你可以做的(在 JavaScript 中):

document.querySelector("#getInfoBtn").addEventListener('click',() => {
    toggleInfoBtnSpinner()
    setTimeout(AFUpload, 10)
});

let toggleInfoBtnSpinner = () => {
    const btn = document.querySelector("#getInfoBtn")
    const spinner = btn.querySelector("#infoSpinner")

    if (spinner == null) {
        btn.innerHTML = `<span id="infoSpinner" class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span>Search`
    } else {
        spinner.remove()
        btn.innerHTML = `Search`
    }
    btn.disabled = !btn.disabled
}

这将设置微调器启动,然后,您将在 10 毫秒后作为异步函数执行 AFUpload 函数,您可以触发该函数的某些内容以让系统知道它已完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多