2012-09-03 25 views
5

Ben bir animasyon uygulamak için animatör kullanıyorum üzerinde animasyon sonra blok gibiKakao: çalıştırmak OSX

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

ama aşağıdaki gibi, animasyon bitirmek sonra bir yöntemi ya da blok çalıştırmak istiyorum:

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

Bunu uygulamak için herhangi bir yolu var mı?

+0

Belki [bu] [1] can size yardımcı olur, geri arama yöntemi yazmalısınız. [1]: http://stackoverflow.com/questions/4824038/how-to-simplify-callback-logic-with-a-block – Mil0R3

cevap

11

Sen NSAnimationContext kullanmalıdır ve completionHandler var:

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

Sana tamamlanmasını ayarlamak gerektiğini düşünüyorum – NOrder

+3

çok teşekkürler animasyonu yapmadan önce işleyici. – Samir

+0

@Samir, dokümanlardaki hiçbir onayı bulamıyor, ancak haklı olduğunuzu düşünüyorum. Cevabımı güncelledim. – Dmitry

1

Ben WWDC videodan başka bir çözüm bulmak ve feryat kod yardımcı olur umarım başkası

enter image description here