【问题标题】:Quartz Framework (Mac) Explanation NeededQuartz Framework (Mac) 需要说明
【发布时间】:2011-02-16 01:41:11
【问题描述】:

我有一些标签需要轮换,我之前问过一个关于如何这样做的问题:

Rotating Labels

显然,最好的方法是通过 Quartz 框架的 layer 属性?有人可以向新手解释如何做到这一点吗? :) 我会尽快奖励答案!

扎克

【问题讨论】:

    标签: objective-c xcode macos interface-builder quartz-graphics


    【解决方案1】:

    您可以简单地使用NSViewsetBoundsRotation: 方法来设置它而不使用CoreAnimation。

    如果你真的想使用 CoreAnimation,你可以这样:

    // make NSView myView a layer-backed view
    [myView setWantsLayer:YES];
    // now get that CALayer and set the affineTransform of it, specifying the angle
    [myView.layer setAffineTransform:CGAffineTransformMakeRotation(M_PI)];
    

    【讨论】:

      【解决方案2】:

      layer 是 UIView 的一个属性,它为您提供了一个 CALayer 类型的对象,您可以对其应用转换,例如

      CALayer* layer = theLabel.layer;
      [layer setAffineTransform:CGAffineTransformMakeRotation(M_PI)];
      

      这会给你一个颠倒的标签。

      【讨论】:

      • 糟糕,这是 Mac!没有UIView。 ;-)
      • 在 Mac 上,您可以将 NSView 设置为 layer backed(使用 setWantsLayer:如果以编程方式执行,否则 Interface Builder 中有一个复选框),在这种情况下,它有一个 layer 属性,暴露一个 CALayer应该在哪个 setAffineTransform 上工作。
      • @Bavarious:您介意详细说明如何使用它吗?我不明白如何在我的界面中实现这一点
      猜你喜欢
      • 2014-10-08
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2012-08-28
      相关资源
      最近更新 更多