【Swift】UISliderを使ってみる

環境:Swift5

UISliderの基礎

UISliderは値の調節や、音声プレイヤーのシークバーなどに利用されるパーツです

UISliderには下記のような設定が用意されています

  • minimumValue
    • 最小値
  • maximumValue
    • 最大値
  • value

上記の設定を最小値0、最大値100、初期値50で設定した場合は下記のようになります

import UIKit

class ViewController: UIViewController  {
    
    @IBOutlet weak var slider: UISlider!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        slider.minimumValue = 0
        slider.maximumValue = 100
        slider.value = 50
    }
}

UISliderの値の変更を検出する

UISliderをスライドして値を検出する場合はIBActionで接続しても、addTargetでコードで書いてもかまいません

両方の例を書いておきます

IBActionの場合

class ViewController: UIViewController  {
    
    @IBOutlet weak var slider: UISlider!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        slider.minimumValue = 0
        slider.maximumValue = 100
        slider.value = 50
    }
    
    @IBAction func sliderChange(_ sender: UISlider) {
        let value = sender.value
        print("value = \(value)")
    }
}

コードで書く場合

import UIKit

class ViewController: UIViewController  {
    
    @IBOutlet weak var slider: UISlider!
    
    override func viewDidLoad() {
        super.viewDidLoad()

        slider.minimumValue = 0
        slider.maximumValue = 100
        slider.value = 50
        slider.addTarget( self , action: #selector(sliderChange(_:)), for: .valueChanged)
    }
    
    @objc func sliderChange(_ sender: UISlider) {
        let value = sender.value
        print("value = \(value)")
    }
}

UISliderまとめ

ユーザーに値の変更を行わせたい場合に利用されるUIですので、スライドした後の処理が重要になってくると思います。

UIControl.Event.valueChangedで重たい処理を行うと落ちる場合もありますので、そういう場合はUIControl.Event.touchUpInsideを利用するなどの工夫が必要になりますのでお気を付けください