LoginSignup
0
6

More than 3 years have passed since last update.

SwiftUIでTimerを使えるようになるまでの道のり

Last updated at Posted at 2021-02-15

SwiftUI初心者がTimerを使えるようになるまでの道のりを簡単にメモしておきます。

とりあえず以下を参考にしています。
- Triggering events repeatedly using a timer
- How to use a timer with SwiftUI

ContentView.swiftに追加

とりあえず、最初に生成されるテキスト(Hello, world!)部分に時刻を表示し、1秒ごとに更新するようにしました。

Timer.publish(every: 1, on: .main, in: .common).autoconnect()

を使うことにします。
上記だと、1秒毎に、mainスレッドで、他のイベント実行中でも実行する、という設定になるはずです。
everyで設定した間隔でTimerが出力を行います。
Timerからの出力は、onReceiveで受け取っています。
最初のパラメータで出力元(publisher)を指定していて、2番目のパラメータで受け取った出力を使って実行するfunctionを指定しています。

Contentview.swift

import SwiftUI

struct ContentView: View {

    var counter: Int = 0
    @State var labeltext: String = "Hello, world!"

    let timer = Timer.publish(every: 1, on: .main, in: .common).autoconnect()

    var body: some View {
        Text(labeltext)
            .padding()
            .onReceive(timer, perform: { time in
                labeltext = "\(time)"
            })
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
0
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
0
6