-3

我正在尝试对速度计进行编程!我有一个针图像,我希望针根据当前的下载速度旋转。

我有以下方法,但它不起作用。当我用 CurrentDegress 更新我的针头时,它永远不会下降,只会越来越高;针绕着圆圈旋转……有人吗?!

- (void) recalculateDegrees:(CGFloat) currentlyLoadedBytes
{
    if(bytes <= 0){
        currentDegrees = 0;
    }
    else if (bytes > completeFileSize){
        currentDegrees = MAX_DEGREES;
    }
    else {
        CGFloat log_tmp =(CGFloat) log10f(currentlyLoadedBytes / 1000);
        currentDegrees = (log_tmp/5.0f)*290.0f;
    }
    //code to rotate image to currentDegrees
}
4

2 回答 2

1

您可以使用以下方法从速度值(而不是从currentlyLoadedBytes)中获取角度:

- (CGFloat)angleFromSpeed:(CGFloat)speed
{
    if (speed <= 0) {
        return MIN_ANGLE;
    } else if (speed >= MAX_SPEED) {
        return MAX_ANGLE;
    } else {
        return speed / MAX_SPEED * (MAX_ANGLE - MIN_ANGLE) + MIN_ANGLE;
    }
}
于 2012-08-29T14:57:10.330 回答
0

我不会 100% 关注你正在做的事情,但else你应该在你的街区的某个地方划分currentlyLoadedBytes / completeFileSize。另外,bytes应该是cuurentlyLoadedBytes

于 2012-08-29T14:51:18.227 回答