概要
AppleWatchのDigital Crownを使うアプリを作ってみようと思い
Digital Crownの機能を簡単に試してみた。
ソースコード
ContentView.swift
import SwiftUI
struct ContentView: View {
@State var crownValue = 0.0
var body: some View {
Text("Value: \(crownValue)")
.focusable()
.digitalCrownRotation($crownValue, from: 0.0, through: 1.0)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
##解説
Digital Crownを回すと対応する値を画面に表示します。
表示項目にモディファイアとして
. focusable()
に続けて
.digitalCrownRotation($crownValue)
で値を取得できるようでした。
また
.digitalCrownRotation($crownValue, from: 0.0, through: 1.0)
とすることで Min/Max 値を設定できます。
が、この Min/Max 値はDigital Crownを動かすと、設定値を行きすぎて
オーバーシュート、アンダーシュートが発生します。
今回の例の場合も以下のようになりました。
##感想
入力値を取り出すことは簡単でした。
オーバーシュート、アンダーシュートが発生するところには注意が必要かと思います。