0

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

我认为甚至没有一种方法可以做到这一点,所以任何帮助都将不胜感激!

提前致谢!

4

1 回答 1

7

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

对象:

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);
于 2012-10-23T09:52:01.020 回答