SwiftUIのSlider(UISlider)の使い方【SwiftUI入門】

今回は、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()
            }
        }
    }
}

おわり