İOS'ta NSNotificationCenter ile ilgili ifade varsa

Bir bittiğinde başka bir animasyon başlatmaya çalışıyorum.

Böyle geri aramaları kontrol ediyorum:

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(animationDidStopNotification:) 
name:ImageAnimatorDidStopNotification 
object:animatorViewController];

ImageAnimatorDidStopNotification öğesi alındığında bir şeyi tetiklememi sağlayan bir if deyimini nasıl yapabilirim?

Teşekkürler!

0

2 cevap

animationDidStop kullanarak animasyonları bir araya getirmek çok basit senaryolar için kullanışlıdır. Ancak, daha karmaşık bir şey için, hızlı bir şekilde hantal hale gelir.

Apple tarafından önerilen çok daha hoş bir yaklaşım, CAMediaTiming protokolünün avantajlarından yararlanmaktır.

421 "Çekirdek Animasyon Temelleri" adlı WWDC 2011 videolarına harika bir örnek veriyorlar . Yukarıdaki bağlantıda bulabilirsiniz. Buna erişmek için bir geliştirici hesabına ihtiyacınız olacak.

"Bildirimler ve Zamanlama" İpucu için videoda hızlı ileri 42:36.

4
katma

Ne yapmaya çalıştığınızı ve sorun nerede olduğunu bilmek için yeterince kod göndermediniz.

UIKit ile iki (veya daha fazla) animasyonu zincirlemek istiyorsanız setAnimationDidStopSelector: seçicisini kullanmayı deneyin.

- (void)startAnimating
{
    [UIView beginAnimations: @"AnimationOne" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(animationOneDidStop:finished:context:)];
    /* animation one instructions */
    [UIView commitAnimations];
}

- (void)animationOneDidStop:(NSString*)animationID 
                   finished:(NSNumber*)finished 
                    context:(void*)context
{
    [UIView beginAnimations: @"AnimationTwo" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(animationTwoDidStop:finished:context:)];
    /* animation two instructions */
    [UIView commitAnimations];
}

- (void)animationTwoDidStop:(NSString*)animationID 
                   finished:(NSNumber*)finished 
                    context:(void*)context
{
    [UIView beginAnimations:@"AnimationThree" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    /* animation three instructions */
    [UIView commitAnimations];
}
0
katma