使用 uitextfield 停止计时器(swift4)
use uitextfield to stop timer (swift4)
我希望用户在文本字段中输入一个数字,当计时器达到该数字时,计时器停止。我现在正在尝试,但它说我不能使用布尔运算符来执行此操作。
import UIKit
class ViewController: UIViewController {
@IBOutlet var playbutton: UIButton!
@IBOutlet var titlelabel: UILabel!
@IBOutlet var judo: UITextField!
var timer : Timer?
var counter = 0.0
var isRunning = false
override func viewDidLoad() {
super.viewDidLoad()
titlelabel.text = "\(counter)"
playbutton.isEnabled = true
}
@IBAction func btnplay(_ sender: UIButton) {
if timer == nil {
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(UpdateTime), userInfo: nil, repeats: true)
playbutton.isEnabled = false
}
}
@objc func UpdateTime(){
counter += 0.1
titlelabel.text = String(format: "%.1f", counter)
if counter >= (Int(judo.text!)) {
timer?.invalidate()
timer = nil
}
}
}
您不能对 Double
和 Int
类型的操作数使用二元运算符。 counter
是 Double
所以正确的操作数必须是 Double
let max = Double(judo.text ?? "") ?? 0.0
if counter >= max {
timer?.invalidate()
timer = nil
}
我希望用户在文本字段中输入一个数字,当计时器达到该数字时,计时器停止。我现在正在尝试,但它说我不能使用布尔运算符来执行此操作。
import UIKit
class ViewController: UIViewController {
@IBOutlet var playbutton: UIButton!
@IBOutlet var titlelabel: UILabel!
@IBOutlet var judo: UITextField!
var timer : Timer?
var counter = 0.0
var isRunning = false
override func viewDidLoad() {
super.viewDidLoad()
titlelabel.text = "\(counter)"
playbutton.isEnabled = true
}
@IBAction func btnplay(_ sender: UIButton) {
if timer == nil {
timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(UpdateTime), userInfo: nil, repeats: true)
playbutton.isEnabled = false
}
}
@objc func UpdateTime(){
counter += 0.1
titlelabel.text = String(format: "%.1f", counter)
if counter >= (Int(judo.text!)) {
timer?.invalidate()
timer = nil
}
}
}
您不能对 Double
和 Int
类型的操作数使用二元运算符。 counter
是 Double
所以正确的操作数必须是 Double
let max = Double(judo.text ?? "") ?? 0.0
if counter >= max {
timer?.invalidate()
timer = nil
}