2017-02-14 58 views
0

我有一个带有可变最小和最大设置的UISlider。 现在我需要计算一个范围从0到1.0的值。 例如:
最小= -50.0
最大= -20.0如何计算任何范围的UISlider值到一个范围0-1.0

结果应该是与值-50.0 = 0.0,值-20.0 = 1.0 的-35.0的值是propably约0.5

另外我需要从0-1.0的范围计算它到上面的范围,所以0.5应该返回-35.0。

我不知道为什么这个问题是离题。它不需要示例代码来解释数学原理。无论如何,它的答案没有任何混淆。

+1

基本上你自己说的,为什么这个问题是题外话:“ *不需要示例代码来解释数学原理*“显然,你的问题是关于基础数学,而不是编程。另外请注意,你的问题没有问题。只有*应该*和*需要*,这些人读为*给我的代码,因为我懒得写我自己*无论这是否为真。这个地方的一个很好的主题问题可能是这样的:“我尝试通过{example}来转换滑块值,而不是0-1,我得到{result}。错误在哪里?” – kazemakase

回答

1

你想要的范围是30个整数,所以首先将滑块值乘以30.现在你的范围是0...30。然后从滑块值中减去50。现在你的范围是-50...-20

而对于相反,加50回到范围0...30,然后除以范围0...1范围30。

+0

谢谢。这就是从范围'0 ... 1.0'到'-50 ...- 20'的相反方式。 fram范围为'-50 ...- 20'到'0 ... 1.0'的情况如何? – Udo

+0

啊,我误解了转换。然后你需要做相反的事情:加50,除以30。 – xoudini

0

了selectedValue = -35.0(从答案)

let slideValue = (selectedValue - minValue)/(maxValue - minVlaue) 

sliderValue = 0.5

0

试计算这样的:

var updatedNormalizedValue: Float 

@IBAction func valuechanged(_ slider: UISlider) { 
    let min = slider.minimumValue 
    let max = slider.maximumValue 
    let interval = max - min 
    updatedNormalizedValue = (slider.value - min)/interval 
}