1

我一直在四处寻找,但找不到似乎可以解决我的具体问题的答案。在我的应用程序中,我有一个自定义 UIView 可以无限期地制作动画。它是一片海藻,动画非常微妙,让它看起来像是在水中摇摆。我使用transform.rotation.zposition键上的 CAKeyframeAnimation 对象来执行此操作。这些被添加到一个 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 轴旋转。任何想法如何做到这一点?

4

1 回答 1

0

你显然不能在动画时单独改变旋转,所以我试图做的事情是行不通的。我最终将动画键更改为path,这使我可以使用加速度计单独旋转视图。

于 2013-01-15T18:19:54.457 回答