how to stop a dispatchQueue in swift

后端 未结 3 1603
-上瘾入骨i
-上瘾入骨i 2021-01-13 17:43

I have a DispatchQueue for a introViewController that shows a gif for 11 seconds and then display my login page... But also have a button that skip the intro and display the

3条回答
  •  一个人的身影
    2021-01-13 17:56

    I'm not sure if there are best practices here, but I would consider doing what you are doing with a Timer rather than the DispatchQueue.

    class GifClass: UIViewController {
    
        @IBOutlet weak var gifImage: UIImageView!
        @IBOutlet weak var skipButton: UIButton!
    
        var timer = Timer()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            gifImage.loadGif(name: "promed")
    
            timer = Timer.scheduledTimer(timeInterval: 11, target: self, selector: #selector(timerAction), userInfo: nil, repeats: false)
        }
    
        @objc func timerAction() {
            performSegue(withIdentifier: "introLogin", sender: self)
        }
    
        @IBAction func skip(_ sender: Any) {
            timer.invalidate()
            performSegue(withIdentifier: "introLogin", sender: self)
        }
    }
    

提交回复
热议问题