2012-09-03 13 views
5

estoy usando animador para implementar una animación, comoCacao: ejecutar el bloque después de la animación en OSX

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

pero quiero ejecutar un método o bloque después de la llegada de animación, de la siguiente manera:

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

¿Hay alguna forma de implementarlo?

+0

Tal vez [esto] [1] puede te ayuda, deberías escribir un método de devolución de llamada. [1]: http://stackoverflow.com/questions/4824038/how-to-simplify-callback-logic-with-a-block – Mil0R3

Respuesta

11

Debe utilizar NSAnimationContext y es completionHandler:

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

muchas gracias – NOrder

+3

Creo que debería fijar la finalización manejador antes de realizar la animación. – Samir

+0

@Samir no puede encontrar ninguna confirmación en los documentos, pero creo que tiene razón. He actualizado mi respuesta. – Dmitry

1

encuentro otra solución de vídeo de la WWDC y espero que el código de abajo ayuda a otra persona

enter image description here

Cuestiones relacionadas