簡體   English   中英

初始加載時SwiftSpinner無法正常工作

[英]SwiftSpinner in initial load is not working

在調用SwiftSpinner時,在viewDidLoad ,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.Show的一些方法

  1. 要調用, SwiftSpinner.show("Syncing")

  2. 在主線程中稱它為主線程

 DispatchQueue.main.async {
          DispatchQueue.main.async {
                SwiftSpinner.show("Syncing")
            }
          }
  1. 當它像這樣寫的時候,我能夠實現它,
DispatchQueue.main.async {
                DispatchQueue.main.async {
                    DispatchQueue.main.async {
                        SwiftSpinner.show("Syncing")
                    }
                }
            }

但我不認為它是正確的編碼標准,是Swift和編碼技術的新手

嘗試添加它

viewdidappear

我之前有這個問題,你需要做以下事情

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM