Objective c 以度为单位转换千字节

Objective c 以度为单位转换千字节,objective-c,Objective C,我正在尝试编程一个速度计!我有一个指针图像,我希望指针按照当前下载速度旋转 我有以下方法,但它不起作用。当我用CurrentDegress更新指针时,它从不下降,只会越来越高;针绕着圆圈旋转…有人吗 - (void) recalculateDegrees:(CGFloat) currentlyLoadedBytes { if(bytes <= 0){ currentDegrees = 0; } else if (bytes > complete

我正在尝试编程一个速度计!我有一个指针图像,我希望指针按照当前下载速度旋转

我有以下方法,但它不起作用。当我用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
}
-(void)重新计算的格式:(CGFloat)currentlyLoadedBytes
{
if(字节完整文件大小){
当前度数=最大度数;
}
否则{
CGFloat log_tmp=(CGFloat)log10f(currentlyLoadedBytes/1000);
电流度=(对数tmp/5.0f)*290.0f;
}
//将图像旋转到当前角度的代码
}

我没有100%地理解您正在做的事情,但是在
的其他部分
块中,您应该划分
currentlyLoadedBytes/completeFileSize
。另外,
bytes
是否应该是
cuurentlyLoadedBytes

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

-(CGFloat)角度自速度:(CGFloat)速度
{
如果(速度=最大速度){
返回最大角度;
}否则{
返回速度/最大速度*(最大角度-最小角度)+最小角度;
}
}

您是在寻找一些基本的三角函数答案,还是在寻找如何计算角度的正弦和余弦?这台仪表是否应该指示下载速率或完成百分比?不,我在为我的移动指针寻找正确的计算方法…:)哦,是的,对不起,字节当前应该加载字节。我想做一个速度测试!我已经计算了正确的速度,但现在我希望我的指针旋转到图表上的正确位置!我只使用以下公式计算速度:Speed=currentFileSize/([NSDate-timeintervalncereferencedate]-startTime);嗨,我不明白这个…你能再解释一下吗…:)啊,太好了,它能用了…非常感谢!
- (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;
    }
}