我正在一个UIView中使用CATransform3DMakeRotation,尝试做一个45度的变换,就像它在向后倾斜:
这是我目前的“代码”,但显然并不能达到效果。
CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0);
view.layer.transform = _tr;
请帮我理解参数。谢谢。
我正在一个UIView中使用CATransform3DMakeRotation,尝试做一个45度的变换,就像它在向后倾斜:
这是我目前的“代码”,但显然并不能达到效果。
CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0);
view.layer.transform = _tr;
请帮我理解参数。谢谢。
基本上,您的代码是正确的,但要获得透视效果,您需要将父视图层的sublayerTransform
设置为类似于以下内容:
CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 1.0 / -850;
myView.layer.sublayerTransform = perspectiveTransform;
您可以尝试不同的值来获得不同程度的失真效果。
M_PI
代替常数3.14。还有,可以使用M_PI_4
代替3.14/4。 - Jason Harwig