2012-11-28 90 views
1

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

回答

0

你显然不能单独改变它的旋转动画,所以我试图做的不会工作。我最终将动画键更改为path,这允许我使用加速度计单独旋转视图。