我一直在为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之前用于动画对象的方式。但是随后引入了动画块(如顶部的show),从那时起我一直在使用它们。所以我的问题是,我错过了Mac OS X的动画块吗?还是有另一种方式吗?
答案 0 :(得分:14)
如果您使用的是Mac OS X 10.7,您可能会发现使用基于块的NSAnimationContext API更自然:
+ (void)runAnimationGroup:(void (^)(NSAnimationContext *context))changes
completionHandler:(void (^)(void))completionHandler