Swiftで行こう!- Timer!2
まず前回に引き続きですが、ちょっと追加した全コードです。
それで追加したコードですが、まず、ボタンです。ボタンを押すと、タイマーを止めます。"invalidate()"の命令でストップします。
import UIKit
import PlaygroundSupport
// UIViewController(画面の部品)
class ViewController: UIViewController {
var timer: Timer!
override func viewDidLoad() {
super.viewDidLoad()
let button = UIButton(frame:CGRect(x: 50, y: 50, width: 200, height: 40))
button.setTitle("押してね!", for: UIControl.State.normal)
button.setTitle("ok", for: UIControl.State.highlighted)
button.backgroundColor = UIColor.blue
button.addTarget(self, action: #selector(self.onclick(_:)), for: .touchUpInside)
view.addSubview(button)
startTimer()
}
@objc func onclick(_ sender:Any){
print("click")
timer.invalidate()
}
func startTimer() {
timer = Timer.scheduledTimer(
timeInterval: 1,
target: self,
selector: #selector(self.timerCounter),
userInfo: nil,
repeats: true)
}
@objc func timerCounter() {
print("ok")
}
}
let window = UIWindow(frame: CGRect(x: 0, y: 0, width: 300, height: 500))
let viewController = ViewController()
viewController.view.backgroundColor = UIColor.gray
window.rootViewController = viewController
window.makeKeyAndVisible()
PlaygroundPage.current.liveView = window
こんな感じになります。
スタートすると、"ok"が1秒ごとにコンソールに出力されます。そのあとボタン「押してね」を押すと、コンソール出力が止まります。
この記事が気に入ったらサポートをしてみませんか?