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 に答える