【问题标题】:iOS Align a UIView parallel to X-Z planeiOS将UIView平行于X-Z平面对齐
【发布时间】:2011-08-04 14:40:44
【问题描述】:

我意识到默认情况下UIView 平行于 X-Y 平面,Z 轴直接指向您。

如何旋转这个UIView 使其平行于 X-Z 平面?我想我必须使用CATransform3D,但不确定我应该给它什么角度? M_PI_2 还是 -M_PI_2 ?

有人知道吗?感谢您的帮助...

编辑:我知道通过这样做,UIView 将不会对用户可见,但我想以这种方式设置一个特定的UIView 然后做一些旋转动画它。所以这就是我想要的..

【问题讨论】:

    标签: objective-c ios uiview core-animation transform


    【解决方案1】:

    您可能想要做的是将转换应用到视图的支持层。 UIView 上的 transform 属性是仿射变换,不允许任何 3D 操作。但是访问view.layer.transform,您将拥有一个完整的 4x4 矩阵来满足您的转换需求,从而可以制作漂亮的时髦 3d 内容。

    1. QuartzCore.framework 添加到您的目标。
    2. 导入<QuartzCore/QuartzCore.h> 以访问CALayer API。
    3. 编码。

    例如:

    // Rotate 1/4 by the Y-axis.
    myView.layer.transform = CATransform3DMakeRotation(M_PI_2, 0.0f, 1.0f, 0.0f);
    

    【讨论】:

    • 是的,我认为这就是我必须采用的方法,但您能否提供一些代码示例?
    • 酷!另外,CATransform3DMakeRotationCATransform3DRotate 之间有什么区别?我的意思是两者似乎都是出于相同的目的,对吗?那为什么要两种方法呢?
    • CATransformMakeRotation 从单位矩阵进行旋转。而CATransform3DRotate 将旋转连接到您已经拥有的变换矩阵上(如果您想先旋转然后缩放等)
    猜你喜欢
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多