我一直在尝试对UIView执行透视变换。我参考了这个示例。
然而,该示例不仅应用了旋转,还应用了透视变换。有没有一种方法可以在没有旋转的情况下改变视图的透视?可能看起来像这样:
我一直在尝试删除旋转,但是当我这样做时,透视变换就不会被应用。我找不到任何处理仅更改透视的示例。提前感谢。
然而,该示例不仅应用了旋转,还应用了透视变换。有没有一种方法可以在没有旋转的情况下改变视图的透视?可能看起来像这样:
![enter image description here](https://istack.dev59.com/LAL1Z.webp)
补充一下David的回答:如要得到和您图片中一样的输出,您需要将视图绕x轴(水平轴)旋转,使得视图矩形的上边缘比下边缘“远离”观察者,例如:
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -200;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
如果相对于您的视点没有旋转,则透视图不会可见。即使您不旋转,透视图仍然会被应用,但不会很明显。
另一个显示透视的变换是沿Z轴平移,这使视图看起来像被缩放了。