如何计算滑块值从负到正

时间:2014-09-05 06:54:53

标签: ios objective-c uislider

我有一个曲线滑块,它从帧的高度取值,值从-100到300,我需要计算它等于0到10的值。

我如何计算负值,因为我得到的是负值?

我的数学很糟糕:(

     -(NSUInteger)calculatePoints:(float)pointY
{
    NSLog(@"maxOffsetValue %f minOffsetValue %fand pointY %f",maxOffsetValue,minOffsetValue, pointY);

    float value =  maxOffsetValue + minOffsetValue;
    NSLog(@"value %f",value);
    float normalValue = (pointY * 1.5) / value ;
    NSLog(@"normalValue %f",normalValue);

    return normalValue;
}
//set value from point
-(void) setValueFromPoint:(CGPoint) point
{
    [animationTimer invalidate]; 

    NSInteger value = [self calculatePoints:point.y];
    value = ((value / self.frame.size.height) * self.max);

    NSLog(@"raw value %d",value);
    value < 0 ? value = 0 : value;
    value > self.max ? value = self.max : value;
    self->_value = value;
    NSLog(@"Value %d",value);
}

2 个答案:

答案 0 :(得分:1)

您可以使用

010之间缩放您的值
(x + 100) / 40

其中x-100300之间的值。


<强> Reference

答案 1 :(得分:1)

只是简短的回答。

((point.y-(-100))/400) * 10