任何专家都请帮助我,我已经在这个问题上苦苦挣扎了好几天。我正在实现旋转轮控制(我在互联网上找到),但我需要在用户在屏幕上滑动时旋转它,它应该快速旋转然后减速并停止(作为应用程序任务兔子确实)。
我成功创建了轮子并使其旋转,但它带来了另一个问题,让我告诉你我的代码
- (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达到极限,滚轮将根据速度滚动。
问题在于,当我滑动时,首先,它旋转得很好,然后突然,它向后滚动。例如,它顺时针旋转一段时间,突然改变方向并逆时针旋转。
我希望有人可以帮我解决这个问题:(