旋转已经动画旋转的UIView

时间:2012-11-28 01:51:06

标签: ios uiview transform calayer

我一直在寻找,但找不到似乎可以解决我的具体问题的答案。在我的应用程序中,我有一个自定义的UIView无限制地动画。这是一块海藻,动画非常微妙,让它看起来像是在水中摇曳。我使用transform.rotation.zposition键上的CAKeyframeAnimation对象执行此操作。这些被添加到CAAnimationGroup中,CAAnimationGroup作为图层添加到我的UIView中,如下所示:

animGroup = [CAAnimationGroup animation];
animGroup.fillMode = kCAFillModeForwards;
[animGroup setAnimations:[NSArray arrayWithObjects:posAnim, rotateAnim, nil]];
animGroup.duration = prpAnim.duration;
animGroup.repeatCount = prpAnim.repeat;
animGroup.delegate = self;
[animGroup setValue:self forKey:[NSString stringWithFormat:@"paper.rot.pos.%d",objID]];
[self.layer addAnimation:animGroup forKey:[NSString stringWithFormat:@"rot.pos.%d",objID]];

我希望在不打扰核心动画的情况下,在倾斜iPad时进一步旋转UIView图像(海藻片)。我可以在没有关键帧动画时执行此操作,但是当我尝试将两者结合使用时,它无法正常工作,我无法理解它。

我尝试使用类似的方式设置图层动画:

CATransform3D rotatePiece3D = CATransform3DMakeRotation(-(tiltRadians), 0.0, 0.0, 1.0);
seaweedPiece.layer.transform = rotatePiece3D;

但这也不起作用 - 仅在动画组关闭时才有效。这是一个2D应用程序,所以我只想让它在向左或向右倾斜时围绕z轴旋转。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

你显然无法在动画时单独改变旋转,所以我试图做的不会起作用。我最终将动画关键点更改为path,这样我就可以使用加速度计单独旋转视图。