gpt4 book ai didi

ios - 初始加载中的 SwiftSpinner 不起作用

转载 作者:行者123 更新时间:2023-11-29 05:51:59 25 4
gpt4 key购买 nike

viewDidLoad 上调用 SwiftSpinner 时,Swift spinner 不起作用

请在下面找到我正在使用的代码,

override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.global(qos: .background).async {
self.basicSync {(isSynced) in
DispatchQueue.main.async {
SwiftSpinner.hide()
}
}
}
DispatchQueue.main.async {
SwiftSpinner.show("Syncing")
}
}

public func basicSync(completion: @escaping (Bool) -> ()) {
//Sync related work
completion("true")
}

我无法找到在初始加载时调用 Swift spinner 的方法

我在上面的代码中使用 SwiftSpinner.Show 尝试过的一些方法

  1. 要调用,SwiftSpinner.show("同步中")

  2. 在主线程中调用它 main

 DispatchQueue.main.async {
DispatchQueue.main.async {
SwiftSpinner.show("Syncing")
}
}
  • 这样写我就能够实现了,
  • DispatchQueue.main.async {
    DispatchQueue.main.async {
    DispatchQueue.main.async {
    SwiftSpinner.show("Syncing")
    }
    }
    }

    但我不认为这是正确的编码标准,对于 Swift 和编码技术来说是新的

    最佳答案

    我以前也遇到过这个问题,您需要执行以下操作

    func delay(seconds: Double, completion: @escaping () -> ()) {
    let popTime = DispatchTime.now() + Double(Int64( Double(NSEC_PER_SEC) * seconds )) / Double(NSEC_PER_SEC)
    DispatchQueue.main.asyncAfter(deadline: popTime) {
    completion()
    }
    }

    然后在 View 中加载

    override func viewDidLoad() {
    super.viewDidLoad()
    delay(seconds: 0.5) {
    SwiftSpinner.show("Syncing")
    }
    }

    就是这样:D

    关于ios - 初始加载中的 SwiftSpinner 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575664/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com