应用3D动画进行查看

时间:2012-10-23 09:43:49

标签: iphone objective-c ios cocoa-touch core-animation

我正在与动画挣扎,找不到我想要的东西。我想对视图应用3d旋转。像立方体旋转一样,视图应该有两个图像,并且像iphone通知动画一样从一个图像旋转到另一个图像。我想要的动画就像这样:http://www.youtube.com/watch?v=pBgVbzBJqDc

我甚至不认为如何做到这一点,所以任何帮助都会非常感激!

提前致谢!

1 个答案:

答案 0 :(得分:7)

您可以通过在视图图层上使用变换设置CATransform3D来将3D动画应用于视图。旋转看起来非常平坦,没有任何透视,因此您应该为变换矩阵的第三行和第四列设置适当的值。

<强> ObjC:

CATransform3D rotation = CATransform3DIdentity;
rotation.m34 = -1.0/500.0;
rotation = CATransform3DRotate(rotation, M_PI, 1.0, 0.0, 0.0);
myView.layer.transform = rotation;

<强>夫特:

var rotation = CATransform3DMakeRotation(CGFloat(M_PI), 1.0, 0.0, 0.0);
rotation.m34 = CGFloat(-1.0/500.0)
firstView.layer.transform = rotation;

您可以为两个视图指定角度的合适值,并将它们放置在屏幕上的位置。

为了使它看起来像一个立方体旋转,您还可以在旋转变换矩阵之前将这些图层平移为立方体侧面宽度的一半(以便它不会围绕中心旋转)。

rotation = CATransform3DTranslate(rotation, 0.0, 0.0, sideOfCube/2.0);