【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

この記事からわかること

  • SwiftSlider実装方法
  • 最小値最大値ラベル表示するには?
  • スライダー操作検知する方法
  • デザインアイコン変更方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

Sliderの使い方

Swift UIのSlider構造体はスライダーを動かすことで値を変化させることができるUIを実装するための構造体です。引数にはそれぞれ以下を渡します。もしinに何も渡さなかった場合は0〜1の間で変化するようになります。

struct ContentView: View {
    @State  private var value = 50.0
    var body: some View {
        VStack {
            Slider(value: $value, in: 0...100)
            Text("\(value)")
        }
    }
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

変化量を調整する

デフォルトでは細かい単位で数値が変化しますが、変化量を調整したい場合stepに変化する値を渡します。1を渡せばスライドさせても1ずつしか値が変化しないようになります。

Slider(value: $value, in: 0...100, step: 1)

最小値/最大値ラベルを表示する

スライダーの最小値と最大値のラベルを表示させたい場合は以下のように実装することで実現することができます。

Slider(value: $value, in: 0...100, step: 1) {
    Text("Speed")
} minimumValueLabel: {
    Text("0")
} maximumValueLabel: {
    Text("100")
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

スライダーの変化終了タイミングを検知する

スライダーの変化が終了したタイミングを検知したい場合はonEditingChangedから結果をBool値で受け取ることができます。

struct ContentView: View {
    @State  private var value = 50.0
    @State  private var isEditing = false
    var body: some View {
        VStack {
            Slider(value: $value, in: 0...100, step: 1, onEditingChanged: { editing in
                isEditing = editing
            })
            Text("\(value)")
                .foregroundStyle(isEditing ? .blue : .orange)
        }
    }
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

スライダーの色を変更する

スライダーの色を変更したい場合はtintモディファイアを使用します。

Slider(value: $value, in: 0...100, step: 1)
  .tint(.black)
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

スライダーの反対側の色を変えたい場合はモディファイアでは変更できないのでUISlidermaximumTrackTintColorを変更します。

init() {
    UISlider.appearance().maximumTrackTintColor = .gray
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

つまみのアイコンを変える

つまみ部分を自由に変更したい場合はUISlidersetThumbImageを使用することでUIImage型に変更することができます。

init() {
    UISlider.appearance().setThumbImage(UIImage(systemName: "swift"), for: .normal)
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

つまみの色を変える

つまみ部分の色を変更したい場合はUISliderthumbTintColorを変更します。この際にsetThumbImageでつまみを変更していても元に戻ってしまうようです。

init() {
    UISlider.appearance().thumbTintColor = .cyan
}
【Swift UI】Sliderの使い方と実装方法!色やデザイン、アイコン

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index