UISliderの値を逆にする良い方法はありますか?デフォルトは、左側が最小、右側が最大です。逆に動作させたいのですが。
180度回転させるのは少しばかげているようです。何か案は?
ありがとう!
最大値からスライダーから取得した値を引くだけで、値が逆になります。
次に、あなたとまったく同じものが必要だったので、さらに90度回転させて、逆さまの位置にしました。スライダーは左右対称なので、どちらの位置でもまったく同じに見えます。しかし、最小値と最大値が逆になりました。
コマンドは...
mySlider.transform = CGAffineTransformRotate(mySlider.transform, 180.0/180*M_PI);
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];
}
これにより値が反転し、右/上が最小値として表示され、左/下が最大値として表示されます