環境: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を利用するなどの工夫が必要になりますのでお気を付けください