了解 CATransform3D

发布于 2024-11-27 01:46:23 字数 333 浏览 1 评论 0原文

我正在 UIView 中使用 CATransform3DMakeRotation,并且尝试进行 45° 变换,就像它向后放置一样:

http: //cl.ly/2A2p1W1e2N3a1W181r35

这是我的“代码”,但显然没有这样做。

CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0);
view.layer.transform = _tr;

请帮助我理解参数。 谢谢。

I'm playing with CATransform3DMakeRotation in a UIView, and I'm trying to do a 45º, transform like it's laying backwards:

http://cl.ly/2A2p1W1e2N3a1W181r35

This is the "code" I have, but clearly doesn't do it.

CATransform3D _tr = CATransform3DMakeRotation(3.14/4, 1, 0, 0);
view.layer.transform = _tr;

please help me understand the params.
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

套路撩心 2024-12-04 01:46:23

基本上,您的代码是正确的,但要获得透视效果,您需要将超级视图图层的 sublayerTransform 设置为如下所示:

CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 1.0 / -850;
myView.layer.sublayerTransform = perspectiveTransform;

您可以针对不同的扭曲量尝试不同的值。

Basically, your code is correct, but to get the perspective effect, you need to set the sublayerTransform of the superview's layer to something like this:

CATransform3D perspectiveTransform = CATransform3DIdentity;
perspectiveTransform.m34 = 1.0 / -850;
myView.layer.sublayerTransform = perspectiveTransform;

You can experiment with different values for different amounts of distortion.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文