2010-11-19 13 views
3

Animasyon bloklarını kullanmak için beginAnimations kullanan bazı animasyon kodlarını dönüştürmeye çalışıyorum. I am having problem ben animasyonlar çok daha hızlı gider animasyonlar blokları kullanırken ve ben süre değeriAnimasyon hızı, beginAnimations ile animasyonlar bloğu arasında farklıdır

Bu değiştirerek hızını ayarlamak gibi olamaz ki ben aslen ile başladı budur:

birdFly.image = [UIImage imageNamed: @"bird1.png"]; 
[self.view addSubview:birdFly]; 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:20]; 
birdFly.frame = CGRectMake(-1116,27,111,48); 
[UIView commitAnimations]; 
[birdFly release]; 

Yukarıda yaptığımın yerine ilk önce denediğim şey buydu. Bu kodu kullanarak animasyon, orijinal kodu kullandığından çok daha hızlıdır. Hatta süresini değiştirerek tüm hızı değiştirmek için görünmüyor:

birdFly.image = [UIImage imageNamed: @"bird1.png"]; 
[self.view addSubview:birdFly]; 
[UIView animateWithDuration:20 
    animations:^{ 
     birdFly.frame = CGRectMake(-1116,27,111,48); 
    }]; 

Ben de bir tamamlama bloğu gerekli düşünerek bu çalıştı, ama ben değildim başlangıçta zaman ne vardı hız ile karşılaştırıldığında hala gibi hızlıydı Blokları kullanmıyorum.

birdFly.image = [UIImage imageNamed: @"bird1.png"]; 
[self.view addSubview:birdFly];  
UIViewAnimationOptions options = UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction; 
     [UIView animateWithDuration:20 delay:0.0 options:options animations:^ 
     { 
      birdFly.frame = CGRectMake(-1116,27,111,48); 
     } completion:nil]; 

Kodun hepsi aynı şeyi yapıyor mu? Burada çok basit bir şeyi özlüyor muyum? Sürenin artırılmasının, kuşun daha yavaş gitmesini ve daha hızlı gitmesini sağlayacağını düşünürdüm, ancak blokları değiştirirken hiç bir etkisi olmayacak gibi görünüyor.

Herhangi bir rehberlik takdir edilecektir.

Teşekkürler. Aaron

cevap

4

animasyon bloğu başka animasyon bloğu içinde ortaya çıkıyorsa, -animateWithDuration:animations: harici blokun süresini devralır. Seçenekler listesine UIViewAnimationOptionOverrideInheritedDuration eklemeyi deneyin (ve eğriyi geçersiz kılmanız gerekiyorsa muhtemelen UIViewAnimationOptionOverrideInheritedCurve).

+0

Teşekkür ederiz. İşe yaradı. İç içe olduğunu düşünmedim ama bunu söyledikten sonra, biraz aradım ve aslında başka bir animasyon bloğunda yer aldım. Şükran! – AaronG

İlgili konular