【问题标题】:CATransform3DMakeRotation and shadowCATransform3DMakeRotation 和阴影
【发布时间】:2010-12-03 15:42:04
【问题描述】:

我正在创建翻转动画库。

简而言之,我创建了 CALayer 并使用 CoreAnimation 的 CATransform3DMakeRotation 旋转它。

问题是——有没有办法给那个场景添加阴影?无需用 OpenGL 重写整个代码 :)

【问题讨论】:

    标签: ios calayer catransform3d


    【解决方案1】:

    看看CAGradientLayer。我目前正在使用它在类似情况下添加阴影。在性能方面可能代价高昂(仍然需要检查),但看起来很有说服力。

    CAGradientLayer 作为子层添加到您的层并为其opacity 设置动画。您可能需要稍微调整一下渐变色标和颜色才能使它们正确。

    【讨论】:

      【解决方案2】:

      我不确定OpenGL,但你检查过CATransform3D

      添加

      #define DEGREES_TO_RADIANS(d) (d * M_PI / 180)
      

      在 .pch 文件中

      CATransform3D myTransform = CATransform3DIdentity;
      myTransform.m34 = 1.0 / -500;
      myTransform = CATransform3DRotate(myTransform, DEGREES_TO_RADIANS(90), 0.0f, 0.0f, 1.0f);
      myView.layer.transform = myTransform;
      

      你可以在这里继续改变角度DEGREES_TO_RADIANS(90)

      在这里你可以给myView添加阴影。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-06
        • 2014-07-08
        • 2011-11-21
        • 2014-05-25
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多