Ios 如何反转UISlider';s最小最大值?

Ios 如何反转UISlider';s最小最大值?,ios,uislider,Ios,Uislider,有没有一种好方法可以反转UISlider值?默认值为左侧的最小值和右侧的最大值。我希望它以相反的方式工作 把它旋转180度似乎有点傻。有什么想法吗 谢谢 只需从最大值中减去从滑块获得的值,即可反转值。子类NSSlider/UISlider。这样就可以覆盖这两种方法- //Assumes minValue not necessarily 0.0 -(double)doubleValue { double minVal = [self minValue]; double maxV

有没有一种好方法可以反转UISlider值?默认值为左侧的最小值和右侧的最大值。我希望它以相反的方式工作

把它旋转180度似乎有点傻。有什么想法吗


谢谢

只需从最大值中减去从滑块获得的值,即可反转值。

子类NSSlider/UISlider。这样就可以覆盖这两种方法-

//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];
}

这将反转数值,允许右/上显示为最小值,左/下显示为最大值

然后我需要与您完全相同的东西…因此将其再旋转90度,将其置于倒置位置。滑块是对称的,所以在两个位置上看起来完全相同。但最小值和最大值现在正好相反

命令是

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

只需从最大值中减去滑块当前值

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

您只需使用transform(Swift 5.0)水平翻转滑块即可:

这个怎么样:

slider.maximumValue = -minimumValue;
slider.minimumValue = -maximumValue;


-(void) sliderChanged:(UISlider *) slider {

      float value =  -slider.value;

      // do something with value

}

然后只需使用-slider.value。

接受的答案是不正确的,因为它假定slider的最小值为0

在我的例子中,我的最小值是1.1,最大值是8.0


您需要从“最小值+最大值”中减去滑块的值以反转该值。

试试这条漂亮的线-

yourSlider.semanticContentAttribute = .forceRightToLeft

这将更改“最小-最大”轨迹颜色+反转值+不会像变换答案中那样丢失帧。

您可以使用以下公式:

let sliderValue = yourSlider.minimumValue + yourSlider.maximumValue - yourSlider.value

将反转你的值。

好吧,从“最大值”中减去,而不是“1”@Borrden,是的,我会更新--我假设的是0到1的默认比例。FI:如果你的最小值是0.5,最大值是1.5。所选值为x,y为其反方向,然后x+y=2。所以,你可以像这样计算反向:y=2−X如果最小值不为零,则此答案给出的结果不正确。请参阅适用于非零滑块范围的my,该选项适用于非零滑块范围。请改为尝试-yourslaider.semanticContentAttribute=.forceRightToLeft,您将获得正确的最小-最大颜色。您的答案节省了我的时间。感谢
180/180
1
并且可以删除?你不知道弧度?还需要垂直镜像滑块:
slider.transform=slider.transform.scaledBy(x:1,y:-1)
let sliderValue = yourSlider.minimumValue + yourSlider.maximumValue - yourSlider.value