2013-02-15 4 views

答えて

7

スライダから取得した値を最大値から減算するだけで、値が逆になります。

+1

まあ、「最大値」から差し引くない「1」 – borrrden

+0

@borrrden、ええ、私は更新します - 私は0から1のデフォルトの規模を想定しました。 – rdelmar

+1

FI:最小値が0.5、最大値が1.5の場合選択された値はxであり、yはその逆であり、x + y = 2である。 y = 2-x – Mrwolfy

2

サブクラスNSSlider/UISlider。従って、これらの2つのメソッドをオーバーライドします -

//Assumes minValue not necessarily 0.0 

-(double)doubleValue 
{ 

    double minVal = [self minValue]; 
    double maxVal = [self maxValue]; 

    double curValue = [super doubleValue]; 
    double reverseVal = maxVal - curValue + minVal; 
    return reverseVal; 
} 

-(void)setDoubleValue:(double)aDouble 
{ 

    double minVal = [self minValue]; 
    double maxVal = [self maxValue]; 

    double reverseVal = maxVal - aDouble + minVal; 

    [super setDoubleValue:reverseVal]; 
} 

これは右/トップは、私は、あなたとまったく同じことを必要とした最大

3

として表示されるように、最小および/左下に見えるようにできるように値を反転します...それを逆さまにして90度回転させてください。スライダは対称的なので、両方の位置でまったく同じように見えます。しかし、最小値と最大値は逆になりました。コマンドがある

...

mySlider.transform = CGAffineTransformRotate(mySlider.transform, 180.0/180*M_PI); 
0

ただ、最大値から、スライダーの現在値を減算します。

label.text = [NSString stringWithFormat:@" %.f%% ", 100 - self.slider.value]; 
+0

あなたの答えは私の時間を節約します。ありがとう –