2012-09-03 28 views
5

Tôi đang sử dụng làm phim hoạt hình để thực hiện một hình ảnh động, nhưCocoa: chạy block sau khi hình ảnh động trên OSX

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

nhưng tôi muốn chạy một phương pháp hoặc chặn sau khi kết thúc hoạt hình, như sau:

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

Có cách nào để triển khai không?

+0

lẽ [này] [1] có thể giúp bạn, bạn nên viết một phương thức gọi lại. [1]: http://stackoverflow.com/questions/4824038/how-to-simplify-callback-logic-with-a-block – Mil0R3

Trả lời

11

Bạn nên sử dụng NSAnimationContext và nó completionHandler:

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

cảm ơn bạn rất nhiều – NOrder

+3

Tôi nghĩ bạn nên đặt kết thúc xử lý trước khi thực hiện các hình ảnh động. – Samir

+0

@Samir không thể tìm thấy bất kỳ xác nhận nào trong tài liệu, nhưng tôi nghĩ bạn nói đúng. Tôi đã cập nhật câu trả lời của mình. – Dmitry

1

Tôi tìm thấy một giải pháp từ WWDC video và hy vọng mã dưới đây sẽ giúp người khác

enter image description here

Các vấn đề liên quan