下面的代码是一个计时器。 3秒后,我希望用户能够关闭计时器。我试着在注释掉的部分解释我试图做的事情 - 我尝试了我注释掉但是没有用。我想保持代码相同,我只需要找到一种方法来使用UIButton i
来停止计时器。
import UIKit
class ViewController: UIViewController {
@IBOutlet var i: UIButton!
@IBOutlet var u: UILabel!
var time = 0
var timer = Timer()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func start(_ sender: Any) {
b()
}
func action() {
time += 1
u.text = String(time)
if time == 2 {
u.alpha = 0
}
else if time > 3 {
u.alpha = 0.5
// if i.isSelected{
// timer.invalidate}
}
else {
return
}
}
func b(){
timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(ViewController.action), userInfo: nil, repeats: true)
}
答案 0 :(得分:2)
将计时器声明为可选
var timer : Timer?
将IBAction start
替换为
@IBAction func start(_ sender: AnyObject) {
if timer == nil {
b()
} else {
timer?.invalidate()
timer = nil
}
}