2

我一直在为 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 的动画块吗?或者还有其他方法吗?

4

1 回答 1

14

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

+ (void)runAnimationGroup:(void (^)(NSAnimationContext *context))changes
        completionHandler:(void (^)(void))completionHandler
于 2012-06-30T16:24:46.410 回答