2009-08-26 11 views
12

Canlandırmaların Cocoa Touch'da nasıl çalıştığını merak ediyordum. Örneğin:[UIView beginAnimations] nasıl çalışır?

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1.0]; 

view1.alpha = 1.0; 
view2.frame.origin.x += 100; 

[UIView commitAnimations]; 

Nasıl UIView iki görüş özelliklerinde değişiklik izler mi?

KVO'nun kullanıldığından şüpheleniyorum, ancak beginAnimations ve commitAnimations çağrıları arasındaki tüm görünümlerdeki değişiklikleri gerçekten gözlemliyor mu?

Herhangi bir fikir takdir edilecektir!

cevap

12

bir basitleştirilmiş açıklama: Tüm görünümler için

tüm animasyonlar tek yığın işlenir, beginAnimations:context: yığında yeni bir aktif CAAnimationGroup çıkar ve commitAnimations geçerli etkin animasyon grubu açılır.

Yığın üzerinde etkin bir animasyon grubu varsa, bu durumda, ilgili özellikleri işlemek için tüm belirleyiciler CAAnimation alt sınıfı örneklerini oluşturacak ve ardından etkin animasyon grubuna ekleyecektir.

Son animasyon atıldığında, yeniden oynatılır.

0

Eski CoreAnimation çağrıları üzerinde sadece bir sarıcı olduğunu düşünüyorum. CoreGraphics API'sine bakın, bu tuşların başlangıç ​​ve bitiş değerlerini sağlarken, bir sözlükte ayarlamanız gereken birden fazla tuş olduğunu görebilirsiniz.