我试图了解如何创建对我的UIView
敏感的深度,如下所示:
我已经试过这段代码:
var rotationWithPerspective = CATransform3DIdentity;
rotationWithPerspective.m34 = -1.0/500.0/2/2
rotationWithPerspective = CATransform3DRotate(rotationWithPerspective, 22.5, 0, 1, 0);
preview.layer.transform = rotationWithPerspective
产生视角。但是,由于某种原因,它会翻转视图。
1)如何避免变换后的“翻转”?
2)转换产生的“透视深度”对于每个给定的
UIView
是否相同,还是取决于UIView
的大小等?谢谢!
最佳答案
CATransform3DRotate
期望弧度而不是度。您正在旋转22.5弧度(例如1200度)。这可能就是为什么您的图像倒置的原因。您可能要使用此:
let radians = 22.5 * M_PI / 180
rotationWithPerspective = CATransform3DRotate(rotationWithPerspective, radians, 0, 1, 0);