在viewDidLoad
上调用SwiftSpinner后,Swift微调器不起作用
请在下面找到我正在使用的代码,
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微调器的方法
我使用SwiftSpinner尝试过的一些方法。从上面的代码中显示
要致电,
SwiftSpinner.show("Syncing")
要在主线程内称呼它
DispatchQueue.main.async {
DispatchQueue.main.async {
SwiftSpinner.show("Syncing")
}
}
DispatchQueue.main.async {
DispatchQueue.main.async {
DispatchQueue.main.async {
SwiftSpinner.show("Syncing")
}
}
}
但是我不认为这是正确的编码标准,对Swift和编码技术来说是新的
答案 0 :(得分:0)
尝试将其添加到
viewdidappear
答案 1 :(得分:0)
我以前遇到过此问题,您需要执行以下操作
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()
}
}
然后视图中确实加载了
override func viewDidLoad() {
super.viewDidLoad()
delay(seconds: 0.5) {
SwiftSpinner.show("Syncing")
}
}
就这样:D