使用它的更新位置和倾斜度移动/旋转物体?
这基本上是一个简单的问题,我无法解决......
所以,我有一个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?