2

さまざまな感度レベルを持つレンジ スライダーを作成したいと思います。ユーザーが選択した範囲内の特定の部分に応じて、異なる動作をする必要があります。つまり、スライダーの範囲が 1 ~ 100,000 の場合、範囲を低い値に設定すると 1 ずつジャンプし、範囲を高い値に設定すると 100 ずつジャンプします。

eBay はこの種のスライダーを Web サイトに実装しました (左側の価格帯スライダーに注目してください): http://www.ebay.com/sch/i.html?LH_FS=0&_sacat=0&_from=R40&_nkw=car&_mPrRngCbx=1&_udlo=490&_udhi= 21%2C000%2C000

何か案が?

4

2 に答える 2

3

スライダーには関連付けられた値が表示されていないため、単純に値変更イベントにアクション アウトレットを追加して、適切なジャンプを計算してみませんか。

たとえば、スライダーの範囲を 1 から 100 に設定します。ラベルを使用して計算された範囲を表示しているとします。

ラベルの値は次のようになります。

if slider.value < 10, then value = range
else if slider.value < 20 then value = 10 + (slider.value - 10) * 2 // increments of 2
else if slider.value < 50 then value = 10 + 10 * 2 + (slider.value - 20) * 5 // increments of 5

...

わかりますか?

于 2013-01-18T00:40:28.903 に答える
3

スライダーの範囲を 0 ~ 5 に設定します。次に、目的の値を として計算します10 ^ sliderValue。これにより、基本的に対数スケールが得られます。

離散的であるが異なる線形範囲が必要な場合、kabram による答えはおそらくあなたが望むものです。

アップデート:

スライダーの範囲を 0.0 から 5.0 に設定します。スライダーの値が変化すると、計算値は次のようになります。

double newValue = pow(10, slider.value);

はどこsliderですかUISliderpow標準の C 数学関数です。これにより、次のことがわかります。

slider.value newValue
     0.0          1.0
     1.0         10.0
     2.0        100.0
     3.0       1000.0
     4.0      10000.0
     5.0     100000.0
于 2013-01-18T00:43:54.823 に答える