如何减慢物体的旋转?

时间:2013-10-25 08:24:03

标签: ios objective-c xcode

我有一个问题。

我有这段代码:

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度,但旋转速度对我来说很快......

有人可以帮我理解如何减慢旋转速度吗?

THX,

亚历

2 个答案:

答案 0 :(得分:0)

试试这个:

[UIView animateWithDuration:2.0 delay:0 options: UIViewAnimationOptionCurveEaseInOut
  animations:^(void){
          compassTarcsa.transform = cgaRotate;
  } completion:NULL
];

这会将变换旋转包装在一个允许您控制旋转持续时间的动画中。

答案 1 :(得分:0)

如果您想要慢速旋转对象,您应该考虑使用旋转动画并根据您所需的速度设置其持续时间。

以下链接可能对您有所帮助:

UIView Infinite 360 degree rotation animation?

http://iosdevelopertips.com/user-interface/rotate-an-image-with-animation.html