在iOS中创建一个“任务兔子”

时间:2012-04-02 05:50:40

标签: ios rotation

任何专家都请帮助我,我已经在这个问题上苦苦挣扎了好几天。我正在实现旋转轮控制(我在互联网上找到),但我需要在用户在屏幕上滑动时旋转它,它应该快速旋转然后减速并停止(作为应用程序任务兔子确实)。

我成功创建了轮子并使其旋转,但它带来了另一个问题,让我告诉你我的代码

- (void)playRotationAnimation:(NSNumber*) _initialVelocity{
    double currentVelocity = ([self doubleAbs:[_initialVelocity doubleValue]])/10;
    while (currentVelocity > 0.1 && self.isRotatingWheel) {
        currentVelocity -= currentVelocity * 0.1;
        double netRotation = currentVelocity;
        if([_initialVelocity doubleValue] < 0) netRotation *= -1;
        NSNumber *_rotation = [NSNumber numberWithFloat:((netRotation * M_PI) / 180)];
        [self performSelectorOnMainThread:@selector(rotateWheelView:) withObject:_rotation waitUntilDone:YES];
        [NSThread sleepForTimeInterval:0.07];
    }
    [self performSelectorOnMainThread:@selector(animationStopped) withObject:nil waitUntilDone:YES];
}

,animationStopped方法是

- (void)rotateWheelView:(NSNumber *)_rotation {
    double rotation = [_rotation doubleValue];
    container.transform = CGAffineTransformRotate(container.transform, rotation);
    NSLog(@"%g", rotation);
}

好的,这是一个想法:“playRotationAnimation”将使滚轮保持滚动,直到currentVelocity达到极限,滚轮将根据速度滚动。

问题在于,当我滑动时,首先,它旋转得很好,然后突然,它向后滚动。例如,它顺时针旋转一段时间,突然改变方向并逆时针旋转。

我希望有人可以帮我解决这个问题:(

0 个答案:

没有答案