今回は、UISlider の SwiftUI版「Slider」についてのサンプルを紹介します。
SwiftUIのSlider(UISlider)の使い方
イニシャライザーで利用頻度の高いものは以下の2パターンかと思います。
Slider(value: Binding<BinaryFloatingPoint>, in: ClosedRange<BinaryFloatingPoint>)
Slider(value: Binding<BinaryFloatingPoint>, in: ClosedRange<BinaryFloatingPoint>, onEditingChanged: (Bool) -> Void))
value: Binding<BinaryFloatingPoint> は浮動小数点数の状態変数(@State)を指定します。
@State private var sliderValue = 0.0
Slider(value: $sliderValue, ...)
in: ClosedRange<BinaryFloatingPoint> は値の範囲を浮動小数点数で指定します。
Slider(..., in: 0.0...30.0, ...)
onEditingChanged: (Bool) -> Void は値の確定時(スライドを終了した時)にコールされるクロージャメソッドを指定します。必要に応じて何らかの処理を行うと良いでしょう。
Slider(..., onEditingChanged: { _ in
何か処理
})
最後に、冒頭の音量調節サンプルのソースコード全体です(実際の音声機能はありません)。
struct ContentView: View {
@State private var volume = 50.0
var body: some View {
Form {
HStack {
Text("MIN")
Slider(value: $volume, in: 0.0...100.0, onEditingChanged: { _ in
})
Text("MAX")
}
HStack {
Spacer()
Text("音量:\(Int(self.volume))")
Spacer()
}
}
}
}
おわり
コメントを残す