Objective-C CALayer UIView真实旋转



我正在尝试旋转一个UIView对象,如下图所示http://i.piccy.info/i7/f8ff7fe488c7c492e6ff6a689bc9cdeb/1-5-2127/60800682/rotation.png

我试图使用CALayer的变换,但我得到这样的东西:http://i.piccy.info/i7/bbb672b058fdfdd251cc90f1ce2b9c1f/1-5-2128/9488743/rotate2.png

如果我理解正确,您想要向后(进入屏幕)的视图标题,应该能够实现这样的东西:

float distance = 50;
CATransform3D basicTrans = CATransform3DIdentity;
basicTrans.m34 = 1.0 / -distance;
view.layer.transform = CATransform3DRotate(basicTrans, M_PI_4, 1.0f, 0.0f, 0.0f);

要实现这种效果,您需要直接操作其中一个转换值(m34)。distance越低,这种效应越强。然后你可以围绕x轴做旋转变换(倾斜),在这个例子中是PI/4或45度。您可以使用degrees * M_PI / 180.0计算任意值pi。

最新更新