今回はSlider
の基本的な使用方法とデザインについて紹介します。
Slider
はボリュームや明るさなどの値を指定するのに便利です。ドラッグ操作で範囲内の値を指定することができます。
valueのみを指定したSliderの使用方法
まずはSlider
の基本的な使用方法です。
Sliderの値に使用する変数を@State
を使用して定義しています。
struct ContentView: View {
@State var sliderValue: Double = 0.0
var body: some View {
Slider(value: $sliderValue)
}
}

Sliderの値を表示する
@State
を使用して定義したSlider
の値を表示します。
Slider
の値はDouble型で定義しているため浮動小数点です。
値を見やすく整数で表示するために、format(_ num: Double)
という関数を使用して、Textで表示しています。
関数の役割は、値を100倍して、Double型→整数のInt型→文字列のString型に変換しています。
struct ContentView: View {
@State var sliderValue: Double = 0.0
var body: some View {
HStack {
Text("\(format(sliderValue))")
Slider(value: $sliderValue)
}
.frame(width: 300)
}
}
func format(_ num: Double) -> String {
let result = String(Int(round(num*100)))
return result
}

Sliderの値の範囲を指定して使用する
Slider
の第二引数で範囲を指定することができます。
今回は範囲を0〜255にして、RGBの色指定をできる様にするサンプルを紹介します。
また、accentColor
を使用するとSlider
に色をつけることができます。
struct ContentView: View {
@State var redValue: Double = 0
@State var greenValue: Double = 0
@State var blueValue: Double = 0
var body: some View {
VStack {
Circle()
.foregroundColor(Color(red: redValue/255, green: greenValue/255, blue: blueValue/255))
.frame(width: 200, height: 200)
HStack {
Text("R: \(String(Int(redValue)))")
Slider(value: $redValue, in: 0...255)
.accentColor(.red)
}
HStack {
Text("G: \(String(Int(greenValue)))")
Slider(value: $greenValue, in: 0...255)
.accentColor(.green)
}
HStack {
Text("B: \(String(Int(blueValue)))")
Slider(value: $blueValue, in: 0...255)
.accentColor(.blue)
}
}
.frame(width: 300)
}
}

まとめ
今回はスライダーの使用方法について紹介しました。
ぜひご活用ください!
SwiftUI勉強中の方へ
SwiftUIのプログラミングを独学で勉強している人にはこちらの書籍もおすすめです!
基礎からしっかり学びたい方はスクールもおすすめです!
無料体験もあるため、気軽に申し込むのもありです。
コメント