我有 4 个 UISlider,最小值为 0,最大值为 10。我有一个常数值(例如:20)。
我的目标是 4 个 slider 值的总和不超过该常量值。
例如:如果我拖动并设置第一个和第二个 slider 的最大值(即 10),现在 4 个 slider 的总和为 20。
我不想让其他 2 个 slider (第 3、4 个)增加。如果我减少任何 slider (第一个或第二个)值意味着我可以允许它们(2、3、4)增加 slider 值。
帮助我实现这一目标。
最佳答案
在 @IBAction sliderValueChanged
中,计算所有 slider 的总和。如果总和大于最大值,只需将“引起” slider (例如,当前正在被用户拖动的 slider )的值重置为允许的最大值。
// ...
let maxSum = 20
// ...
@IBAction func sliderValueChanged(_ sender: UISlider) {
let sum = slider1.value + slider2.value + slider3.value + slider4.value // better: use outlet collection
if (sum > maxSum) {
let overflow = sum - maxSum
sender.value = sender.value - overflow
}
}
关于ios - 处理多个 UISlider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54237553/