2017-02-14 13 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 я получаю {результат}. Где ошибка?" – kazemakase

ответ

1

Диапазон, который вы хотите, составляет 30 целых чисел, поэтому сначала умножьте значение ползунка на 30. Теперь ваш диапазон равен 0...30. Затем вычитайте 50 из значения ползунка. Теперь ваш диапазон: -50...-20.

И для обратной установки добавьте 50, чтобы вернуться в диапазон 0...30, затем разделите их на 30 для диапазона 0...1.

+0

спасибо. То есть обратный путь от диапазона '0 ... 1.0' до' -50 ...- 20'. Как насчет диапазона кадров '-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 
} 
Смежные вопросы