Iphone 车轮旋转并回到起始位置
我正在使用Iphone 车轮旋转并回到起始位置,iphone,objective-c,Iphone,Objective C,我正在使用 float theAngle = atan2( location.y-self.center.y, location.x-self.center.x ); 以一定的角度旋转轮子 及 让变革发生 但每次用户按下方向盘转动它时,它都会返回到原始位置并从那里开始。我怎样才能阻止这一切的发生 谢谢 我猜原因是您是根据车轮的原始位置而不是车轮的先前位置进行计算的 i、 e.假设self.center表示第一次显示的轮子的原始位置,location表示用户希望的新旋转,并在维基百科上查找at
float theAngle = atan2( location.y-self.center.y, location.x-self.center.x );
以一定的角度旋转轮子
及
让变革发生
但每次用户按下方向盘转动它时,它都会返回到原始位置并从那里开始。我怎样才能阻止这一切的发生
谢谢 我猜原因是您是根据车轮的原始位置而不是车轮的先前位置进行计算的 i、 e.假设self.center表示第一次显示的轮子的原始位置,location表示用户希望的新旋转,并在维基百科上查找atan2(trig不是我的强项:-)我猜您需要每次更新self.location到be位置,以便下一个旋转从上一个旋转开始
猜一猜:-)您可以设置车轮的旋转角度值,而不是将该值添加到当前角度。我正在使用self.transform=CGAffineTransformMakeRotation(角度弧度);对于变换,变换始终基于视图的原始位置,因此是当前的行为。您能提供一个替代方案吗?我不知道如何计算角度,但您必须记住用户释放轮子时的角度。您还可以尝试通过NSValue*value=[layer valueForKey:@“transform.rotation.z”]获取层的旋转角度;
self.transform = CGAffineTransformMakeRotation(angleRadians);