这是(应该是)一个函数,它确保多个滑块的值总和的总和加起来为globalTotal
。
用户可以手动将滑块值更改为changer.value
,然后将此功能应用于其他滑块的值时,可以确定其新值或{{1} }。
需要更改滑块的endVal
和更改startVal
的滑块的原始值,并且可以通过加权确定其他值。
问题和我的问题是。有时changerStartVal
可以零(当滑块更改一直移动到最大值时)或remainingStartVals
可以零(当滑块更改时)移动到零,然后移动另一个滑块)。当发生这种情况时,我分别得到除零或乘零。这两个都很糟糕,导致不正确的结果。有没有一种简单的方法来解决这个问题?
startVal
答案 0 :(得分:0)
嘿@Sean我在这里想到的最简单的调整是检查remainingStartVals
是不是 0 ,这意味着有权重分配给其他滑块并检查是否一个滑块的重量开始,这意味着它的startVal
不应该等于 0
func calcNewVal(startVal: Float, changerStartVal: Float) -> Float{
var endVal = 0
let remainingStartVals = globalTotal - changerStartVal
if remainingStartVals != 0 || startVal != 0{
let remainingNewVals = globalTotal - changer.value
endVal = ((startVal * (100 / remainingStartVals)) / 100) * remainingNewVals
}
return endVal
}