Como fazer com que o UISlider produza números arredondados agradáveis exponencialmente?

Estou implementando um UISlider que um usuário pode manipular para definir uma distância. Eu nunca usei o CocoaTouch UISlider, mas usei outros controles deslizantes de estruturas, geralmente há uma variável para definir as propriedades "step" e outras "helper".

A documentação para o UISlider lida apenas com um valor máximo e mínimo, e a saída é sempre um número decimal 6 com uma relação linear com a posição do "slider nob". Acho que vou ter que implementar a funcionalidade desejada passo a passo.

Para o usuário, os valores mínimo / máximo variam de 10 ma 999 Km. Estou tentando implementar isso de forma exponencial, que parecerá natural para o usuário. I.e. o usuário experimenta uma sensação de controle sobre os valores, grandes ou pequenos. Além disso, a "saída" tem valores razoáveis. Valores como 10m 200m 2.5km 150 km etc. em vez de 1.2342356 m ou 108.93837756 km.

Gostaria que o tamanho do degrau aumentasse em 10m nos primeiros 200m, talvez em 50m até 500m, depois, ao passar o valor de 1000m, ele começará a lidar com quilômetros, então será o tamanho do degrau = 1 km até 50 km, então talvez 25 km passos etc.

Seja como for, acabo fazendo muitos arredondamentos e muitos cálculos agrupados em um forrest de instruções if e conversões NSString / Number, sempre que o usuário move um pouco o controle deslizante.

Eu esperava que alguém pudesse me dar um pouco de inspiração / ajuda em matemática ou me conscientizar de uma abordagem mais enxuta para resolver esse problema.

Minha última idéia é preencher e organizar com um valor de 100 strings e, em seguida, fazer com que o slider int value corresponda a uma string, isso não é muito flexível, mas factível.

Agradecemos antecipadamente por qualquer ajuda dada :)

questionAnswers(6)

yourAnswerToTheQuestion