有没有一种很好的方法来反转UISlider值?默认值为左侧的最小值和右侧的最大值。我希望它以相反的方式工作。
将它旋转180度似乎有点傻。有任何想法吗?
谢谢!
只需从最大值中减去滑块中的值,即可反转值。
然后我需要与你完全相同的东西...所以将它再旋转90度,将其置于倒置位置。滑块是对称的,因此它在两个位置看起来完全相同。但最小值和最大值现在相反。
命令是......
mySlider.transform = CGAffineTransformRotate(mySlider.transform, 180.0/180*M_PI);
子类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];
}
这将反转允许右/顶显示为最小值的值和左/底显示为最大值
只需从最大值中减去滑块当前值。
label.text = [NSString stringWithFormat:@" %.f%% ", 100 - self.slider.value];
您只需使用transform(Swift 5.0)水平翻转滑块:
slider.transform = CGAffineTransform(scaleX: -1, y: 1);
这个怎么样:
slider.maximumValue = -minimumValue;
slider.minimumValue = -maximumValue;
-(void) sliderChanged:(UISlider *) slider {
float value = -slider.value;
// do something with value
}
然后使用-slider.value。
接受的答案不正确,因为它假定滑块的最小值为0。
在我的情况下,我的Min是1.1,Max是8.0
您需要从Min + Max值中减去滑块的值以反转该值。