【问题标题】:Animations for NSViewNSView 的动画
【发布时间】:2012-07-01 18:48:04
【问题描述】:

我一直在为 iOS 制作应用程序,最近开始为 Mac OS X 制作应用程序。我正在尝试在 NSView 上做一些动画。

我想要做的是反弹 NSView 的比例,使其缩小到 70%,然后反弹回 100%。现在我可以做缩放/尺寸部分,但这是我现在不能做的动画部分。

对于 iOS,我会在 UIView 上使用以下内容:

+ (void)animateWithDuration:(NSTimeInterval)duration
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion

使用它意味着当上一个动画完成时,我可以开始新的动画。我一直在为 Mac OS X 寻找类似的功能。我发现了以下内容:

[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:2.0];
// Set end state of objects to animate
[NSAnimationContext endGrouping];

这类似于我在 iOS 4 之前为对象设置动画的方式。但后来引入了动画块(如顶部的显示),从那时起我就一直在使用它们。所以我的问题是,我错过了 Mac OS X 的动画块吗?或者有其他方法吗?

【问题讨论】:

    标签: macos animation core-animation nsview


    【解决方案1】:

    如果您使用的是 Mac OS X 10.7,您可能会发现使用基于块的 NSAnimationContext API 更自然:

    + (void)runAnimationGroup:(void (^)(NSAnimationContext *context))changes
            completionHandler:(void (^)(void))completionHandler
    

    【讨论】:

    • 啊哈!谢谢@torrey.lyons 这就是我想要的。我完全错过了。遗憾的是它只适用于 10.7 及更高版本,我必须看看我是否真的要支持 10.6 并使用更长的非阻塞形式。
    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多