使按钮从 3 秒消失然后重新出现 (swift3)

Make button disappear from 3 seconds then reappear (swift3)

每次按下按钮时,我都希望按钮隐藏 3 秒,然后在 3 秒结束后我希望按钮不被隐藏。

@IBOutlet var save: UIButton!
@IBAction func button(_ sender: Any) {

}

其实如果你使用Google,你会发现很多例子。使用这样的东西:

var timer: Timer!
@IBOutlet var save: UIButton!
@IBAction func button(_ sender: Any) {
    save.isHidden = true
    timer = Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(runTimedCode), userInfo: nil, repeats: false)
}

func runTimedCode() {
    save.isHidden = false
}

您可以安排一个闭包在主线程上执行,延迟 3 秒以取消隐藏您的按钮。

@IBOutlet var save: UIButton!
@IBAction func button(_ sender: Any) {
    save.isHidden = true
    DispatchQueue.main.asyncAfter(deadline: .now()+3, execute: {
        save.isHidden = false
    })
}

您可以使用 CGD:

@IBOutlet var save: UIButton!
@IBAction func button(_ sender: Any) {
    self.button.alpha = 0.0
    DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
        self.button.alpha = 1.0
    }
}

或者您可以使用 perform(_:with:afterDelay:)

@IBOutlet var save: UIButton!
@IBAction func button(_ sender: Any) {
    self.button.alpha = 0.0
    perform(#selector(showButton), with: nil, afterDelay: 3)
}

@objc func showButton() {
    self.button.alpha = 1.0
}