使用它的更新位置和倾斜度移动/旋转物体?

这基本上是一个简单的问题,我无法解决......

  • 所以,我有一个UIImageView的对象,在这个对象上,我实现了带有旋转和平移的CAAnimation ,并且它在新的坐标(x,y)上,并且已经旋转了一定程度。

  • 这部动画效果非常好。 但是如果我再次从THAT状态进行旋转和移动,我希望对象在旋转后使用STEP 1中的新框架和新属性,并再次旋转新角度。

  • 到目前为止,当我再次尝试旋转时,它使用其标准状态和帧大小(在初始化过程中)并对其执行旋转...

    And by this I mean... If I have a square of frame (100, 200, 10, 10), and I rotate it by 45 degrees, the shape is now a different square, with different frame size and end points compared to the original square, and I implement a new rotation by (say) 152 degrees on it and it needs to perform a rotation on the newer square... But it turns out that it uses the same frame size as the previous one (x,y, 10, 10).

    我怎样才能继续旋转/移动物体的更新位置和状态?


    注意:(如果您需要查看动画代码)

    这是我的动画代码,它涉及简单的旋转和移动! http://pastebin.com/cR8zrKRq


    您需要保存旋转步骤并更新animationDidStop:method中的对象旋转。 所以,在你的CAS中,你应该申请:

    -(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
    { 
       //angle is global
       CATransform3D rotationTransform = CATransform3DMakeRotation((angle%4)*M_PI_4, 0, 0, 1);
       [object.layer setTransform:rotationTransform];
       object.center = tempFrame; //already there
    }
    

    其中angle是动画(步数)的整数计数器,值为0,1,2,3。 我的步骤是M_PI_4。 这个问题可能有更好的解决方案,但这应该可以解决问题

    链接地址: http://www.djcxy.com/p/39491.html

    上一篇: Moving/Rotating an object using it's updated position and tilt?

    下一篇: Changing a ongoing animation