【问题标题】:How do I animate NSView with curve如何使用曲线为 NSView 设置动画
【发布时间】:2019-02-09 12:37:23
【问题描述】:

我知道如何使用+[NSAnimationContext runAnimationGroup:completionHandler:] 为NSView 对象设置动画,但我看不到在此类动画上设置动画曲线的方法。我看到NSAnimation 有一个包含NSAnimationCurve 参数的init 方法,但我无法弄清楚如何使用此方法指定动画期间实际发生的情况。 NSAnimation 的文档真的很难理解,我找不到任何示例。因此,如果有人可以解释我如何向NSAnimationContext 动画添加曲线或在NSAnimation 动画中指定动画,那将非常有帮助。提前致谢!

【问题讨论】:

    标签: macos nsanimationcontext nsanimation


    【解决方案1】:

    你要找的是timingFunction。

    您可以将其设置在 runAnimationGroup 块内:

    NSAnimationContext.currentContext.timingFunction = …
    

    并使用predefined functions 或使用控制点创建您自己的。

    【讨论】:

    • 完美!谢谢!我确实看到了timingFunction 属性,但由于某种原因它没有注册为我需要的。 NSView 动画的文档一团糟,听起来比实际复杂得多。
    • 要完成您提供的 sn-p,我必须导入 QuartzCore,然后执行 context.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
    【解决方案2】:

    pointium's answer 的 Swift 版本:

    NSAnimationContext.current.timingFunction = .init(name: .linear)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2014-01-05
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      相关资源
      最近更新 更多