基本
概要
Stepperとは
※iOS13から
[-]と[+]のボタンで値を増減するビュー
※iOS13から
[-]と[+]のボタンで値を増減するビュー
パラメータ
label:ステッパーのラベル
value:値を保持する数値型の状態変数を指定
in:値の範囲(省略可能)
step:増減値(省略可能)
onEditingChanged:値変更時の処理(省略可能)
onIncrement:増加値を指定(省略可能)
onDecrement:加減値を指定(省略可能)
value:値を保持する数値型の状態変数を指定
in:値の範囲(省略可能)
step:増減値(省略可能)
onEditingChanged:値変更時の処理(省略可能)
onIncrement:増加値を指定(省略可能)
onDecrement:加減値を指定(省略可能)
Stepper("ラベル", value: $count, in: 0...10, step: 2) Stepper(value: $count) { // ラベルとなるViewを記述 Text("ラベル") }
例
import SwiftUI struct ContentView: View { @State private var count = 0 var body: some View { Stepper("カウント:\(count)", value: $count) .padding() // カスタマイズする場合の書き方 Stepper(value: $count){ HStack { Image(systemName: "star") Text("カウント:\(count)") } } .padding() } } #Preview { ContentView() }
範囲を指定(in)
// 0から10まで Stepper("カウント:\(count)", value: $count, in: 0...10)
増減幅を指定(step)
// 2ずつ増減する Stepper("カウント:\(count)", value: $count, step: 2)
値変更時の処理(onEditingChanged)
ボタン押下時とボタンを話した時で処理を行うことができる
import SwiftUI struct ContentView: View { @State private var count = 0 var body: some View { Stepper("カウント:\(count)", value: $count, onEditingChanged: { onTap in if onTap { print("押された") // ボタンを押した時の処理 } else { print("離された") // ボタンを離した時の処理 }} ) } } #Preview { ContentView() }
増加値と減少値をそれぞれ指定(onIncrement、onDecrement)
value、in、stepは使用不可。
onEditingChangedは使用可能。
import SwiftUI struct ContentView: View { @State private var count = 0 var body: some View { Stepper("カウント:\(count)", onIncrement: { count += 2 // 増加は2づつ }, onDecrement: { count -= 1 // 減少は1づつ } ) } } #Preview { ContentView() }