7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Timerを使ってみた

Posted at

#使ってみるきっかけ
水球のルールが変わり現在使用しているタイマーでは新ルールには対応できないとわかりました。iPhoneアプリを作ってMacにミラーリングすればいい感じになるのではと、思い付きで作成してみた。
#Timerについて
TimerはUIKitに含まれている。
最初にTimerの名前を決める。今回はmytimer。

ViewController.swift
var mytimer : Timer!

調べている途中ではNSTimerを使っている記事がたくさんみられたがTimerに変更されている。
Timerを生成する関数の名前を決め作成する。

ViewController.swift
func createTimer(){
        //timerを生成する.
        maintimer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(self.maintimeaction(timer:)), userInfo: nil, repeats: true)
    }

このコードの役割。

コードの名前 意味
timeInterval 何秒経ったら関数を呼び出すかの定義
target selectorの場所を指定する。
selector 時間が経って行うことを書いたところを指定する
userInfo パラメータとして渡したい何かを記述。
repeats 繰り返しを行うかどうかをBoolで書く

時間が経って行うことを書いてみる。

ViewController.swift
@objc func maintimeaction(timer: Timer){
//例えばLabeに表示や時間を加えたり減らしたりなどなど
    }

タイマーを作成

ViewController.swift
override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
createTimer()
//さっきの関数の名前
}

タイマーを止めるときは下記のコードで止めることが可能。

ViewController.swift
maintimer.invalidate()

ただし、止めた後はもう一度タイマーを生成しなければならない。
これでタイマーが動いているか止まっているか確かめられる。

ViewController.swift
maintimer.isValid

#最後に
意外と簡単であった。また2つのタイマーを動かすこともでき水球のタイマー作っていて楽しかった。

#参考文献
https://pg-happy.jp/swift-scheduledtimer.html
https://qiita.com/KikurageChan/items/5b33f95cbec9e0d8a05f
https://uruly.xyz/【swift】タイマー機能カウントダウンを実装する/
https://picolica.com/2017/04/17/swift3-5sec-timer/
などなど

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?