如何减缓对象的旋转?
我有一个问题。
我有这个代码:
if(CGRectContainsPoint(compassTarcsa.frame, curLoc)) { compassTarcsaTouch = YES; float fromAngle = atan2( compassFirstLoc.y-compassTarcsa.center.y,compassFirstLoc.x-compassTarcsa.center.x ); float toAngle = atan2( curLoc.y-compassTarcsa.center.y,curLoc.x-compassTarcsa.center.x ); newAngle = (angle + (toAngle - fromAngle)); iranyFok = (newAngle / (M_PI / 180.0f)) ; if (iranyFok < 0.0f) { iranyFok += 360.0f; } iranyFok = 360-(fmodf(( 360 + iranyFok ), 360)); CGAffineTransform cgaRotate = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(- iranyFok)); compassTarcsa.transform = cgaRotate; repcsi.transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(iranyFok));
这从0到360度旋转指南针,但旋转速度对我来说是快速的…
有人能帮我理解如何减缓这种旋转?
谢谢,
亚历克斯
尝试这个:
[UIView animateWithDuration:2.0 delay:0 options: UIViewAnimationOptionCurveEaseInOut animations:^(void){ compassTarcsa.transform = cgaRotate; } completion:NULL ];
这将把你的变换旋转包裹在一个animation中,允许你控制旋转的持续时间。
如果您想要缓慢旋转对象,您应该考虑使用旋转animation并根据您所需的速度设置其持续时间。
以下链接可能对您有所帮助:
UIView无限360度旋转animation?
http://iosdevelopertips.com/user-interface/rotate-an-image-with-animation.html