我有一个按钮,它会显示一个模态视图,但我希望如果用户单击它,他在90秒内将无法再次使用它。我该怎么做?
self.button.enabled = false
NSTimer.scheduledTimerWithTimeInterval(90, target: self, selector: "enableButton", userInfo: nil, repeats: false)
创建一个函数,在计时器结束倒数时调用:
func enableButton() {
self.button.enabled = true
}
sender.isUserInteractionEnabled = false
Timer.scheduledTimer(withTimeInterval: 90, repeats: false, block: { _ in
sender.isUserInteractionEnabled = true
})
#Swift 3
在你想要禁用按钮的位置编写以下代码。
self.buttonTest.isEnabled = false
Timer.scheduledTimer(timeInterval: 90, target: self, selector: #selector(ViewController.enableButton), userInfo: nil, repeats: false)
这里的buttonTest是指该按钮的Outlet属性。
将下面的代码放入ViewController中的任何位置。
func enableButton() {
self.buttonTest.isEnabled = true
}
如有任何疑问,请告知。谢谢。
我希望这个答案更通用,以便开发人员找到更多有用的信息。
首先,按钮是作为输出口还是操作挂钩的? 在这两种情况下,您都需要将其连接为输出口。
其次,我建议您使用闭包而不是编写一个函数然后调用它,您可以简单地执行以下操作:
@IBOutlet weak var buttonWithTimer: UIButton!{
didSet{
self.buttonWithTimer.isEnabled = false
Timer.scheduledTimer(withTimeInterval: 90, repeats: false) {
[weak self]timer in
self?.buttonWithTimer.isEnabled = true
} // [weak self]inside the closure is to break a possible
// memory sicle
}
}