2012-09-03 10 views
5

上のアニメーションの後に実行するブロックIはココア:OSX

[[self.view animator] setFrame:newFrame]; 

のように、アニメーションを実装するためにアニメーターを使用していますが、私は次のように、アニメーション終了後にメソッドまたはブロックを実行したい:

[[self.view animator] setFrame:newFrame onComplete:^{ 
    NSLog(@"****"); 
}]; 

これを実装する方法はありますか?

+0

たぶん、[この] [1]ができますあなたに役立つ、あなたはコールバックメソッドを記述する必要があります。 [1]:http://stackoverflow.com/questions/4824038/how-to-simplify-callback-logic-with-a-block – Mil0R3

答えて

11

あなたはNSAnimationContextを使用する必要があり、それはcompletionHandlerです:

[NSAnimationContext beginGrouping]; 
[[NSAnimationContext currentContext] setCompletionHandler:^{ 
    NSLog(@"****"); 
}]; 
[[self.view animator] setFrame:newFrame]; 
[NSAnimationContext endGrouping]; 
+0

はそんなに – NOrder

+3

をありがとう、私はあなたが完了したことを設定すべきだと思いますアニメーションを実行する前に – Samir

+0

@Samirはドキュメントで確認を見つけることができませんが、あなたが正しいと思います。私は私の答えを更新しました。 – Dmitry

1

私はWWDCのビデオから別の解決策を見つけると怒鳴るコードが役に立てば幸い他の誰か

enter image description here