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