首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解CATransform3DRotate / CATransform3DMakeRotation

理解CATransform3DRotate / CATransform3DMakeRotation
EN

Stack Overflow用户
提问于 2016-02-17 01:45:35
回答 2查看 4.8K关注 0票数 3

我正试图理解如何创建对我的UIView这样的深度感知:

我试过这段代码:

代码语言:javascript
复制
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的大小等?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-17 03:55:56

CATransform3DRotate预计弧度不是度。你旋转22.5度,大约1200度。这可能就是你的形象倒置的原因。您可能想使用这个:

代码语言:javascript
复制
let radians = 22.5 * M_PI / 180
rotationWithPerspective = CATransform3DRotate(rotationWithPerspective, radians, 0, 1, 0);
票数 4
EN

Stack Overflow用户

发布于 2017-06-13 13:07:57

( 2)

  • 这是每一个UIView。
  • 如果您想应用于子层,可以使用sublayerTransform。例如preview.layer.sublayerTransform = rotationWithPerspective

你可以阅读更多关于它的iOS核心动画-先进技术的尼克洛克伍德。希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35446457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档