_Swift 3
_とXcode 8.2を使用しています。 Swiftでかなり新しい。水平方向のUISlider
を使用して、1から16までのボリュームを最小値と最大値として制御します。print()
を実行すると、フロート値が返されます。値を整数に制限するにはどうすればよいですか?
_ @IBOutlet var ringValue: UISlider!
@IBAction func ringVolumeSliderChange(_ sender: UISlider)
{
print(sender.value)
}
_
前もって感謝します!
@IBAction func SliderValueChanged(_ sender: UISlider) {
showValueSlider.text = String(format: "The value is:%i",Int(sender.value))
}
value
UISlider
のプロパティはFloat
タイプであるため、変更することはできませんが、Int(sender.value)
。
@IBAction func ringVolumeSliderChange(_ sender: UISlider) {
print(Int(sender.value))
}
スライダーをステップのみに配置したい場合は、次のようにします。
@IBAction func ringVolumeSliderChange(_ sender: UISlider)
{
sender.setValue(sender.value.rounded(.down), animated: true)
print(sender.value)
}
この例では、最小値と最大値を設定したと想定しています。これで、ユーザーがスライドすると、スライダーは位置から位置へとジャンプします。
最小値と最大値として1から16までの音量を制御するための水平UISliderがあります...
デフォルトでは、value
プロパティの最小値は0.0で、最大値は1.0です。
スライダーの値に基づいて1から16までの整数を取得したい場合は、 @ NiravDが推奨 を-pretty simple-mathsで追加する必要があります:)
_@IBAction func ringVolumeSliderChange(_ sender: UISlider) {
print(Int((sender.value * 15).rounded()) + 1)
}
_
print(Int(sender.value))
とすると、スライダーが最大値(1.0)に達した場合に1を出力します。他のすべての値は、1.0が0として出力されるよりも小さいです。
スライダーをよりスムーズにして、一度に1つの結果を取得するには(ユーザーがスライドを停止したとき)、viewDidLoad
内で次の行を使用できます。
ringValue.isContinuous = false
次に、jboiの回答が好きだった他の回答の1つからの結果をどのように処理するかを選択できるので、離散値を取ります。