【问题标题】:How to "rotate" a layer/view (e.g. just like you would in enigmo)如何“旋转”图层/视图(例如,就像在 enigmo 中一样)
【发布时间】:2010-09-19 12:52:50
【问题描述】:

我知道如何根据触摸移动图层。但我也希望能够旋转图像。

是否有任何示例代码显示如何执行此操作?或者谁能​​给我一些建议?

谢谢!

【问题讨论】:

    标签: iphone objective-c cocoa-touch


    【解决方案1】:

    最简单的方法是使用图层的变换属性:

    float   angle = M_PI;  //rotate 180°, or 1 π radians
    layer.transform = CATransform3DMakeRotation(angle, 0, 0.0, 1.0);
    

    CATransform3DMakeRotation 函数的第一个参数是旋转量,以弧度为单位。接下来的三个描述了要围绕其旋转的向量。这是描述 z 轴上的矢量,因此有效地垂直于屏幕。这将旋转图层,使其上下颠倒。

    【讨论】:

      【解决方案2】:

      我最终这样做了:

      CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
      [[self viewWithTag:999] setTransform:transform];
      

      请注意,角度以弧度为单位。

      【讨论】:

      【解决方案3】:

      您将使用视图的转换属性。 iPhone OS Programming Guide 中有一些旋转视图的示例代码,位于Launching in Landscape Mode

      【讨论】:

        【解决方案4】:

        您应该查看 Apple 的 MoveMe 示例,了解如何基于触摸在图层中移动。它还会在您执行此操作时应用一些缩放变换,因此应该作为应用旋转变换的合理示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-26
          • 1970-01-01
          • 1970-01-01
          • 2015-09-16
          • 1970-01-01
          相关资源
          最近更新 更多