here tanımladığım gibi, animasyonlarda hem UIViews hem de CALayer kullanıyorum ve bunlar arasında önemsiz bir performans farkı buldum. UIViews, katmanların etrafında çok hafif paketleyicilerdir. Ayrıca, ihtiyacınız olan katman tabanlı animasyonlar, UIView'in destek katmanına kolayca uygulanabilir.
Çapraz platform (Mac/iOS) kullanıcı arabirimi öğeleri oluşturmak istediğim durumlarda CALayers'ı doğrudan kullandım çünkü CALayer'lar her iki platformdaki uygulamalarında hemen hemen aynıydı (önemli ölçüde farklı NSView'lar ve UIView'lerin aksine). CALayer'ların kutudan herhangi bir dokunmatik işleme rutini yoktur, ancak ihtiyacınız varsa bu özelliği ekleyebilirsiniz.
Ayrıca, katmanlarla sınırlı 3-D manipülasyonu yapmaya çalışırken (bir CoverFlow efektinde olduğu gibi) veya parçacık efektleri üretmek için bir CAReplicatorLayer kullanıldığında olduğu gibi, doğrudan katmanlarla çalışmak isteyebileceğiniz bazı kenar durumları da vardır.
UIViews ile devam ettim çünkü öncelikle UIView animasyonu ile animasyonları çalıştırmak/ardı ardına eylemleri gerçekleştirmek önemli olduğu durumlarda çok daha kolay. (Bu tamamlama blokları çok temiz ve bir delege 'animationDidStop' çağrısı benim durumumda uygulamak için bir kabus olacaktı.) –
@Greg - Evet, yeni blok tabanlı UIView animasyonları oldukça temiz. Ancak, CATransaction'ın '+ setCompletionBlock:' komutunu kullanarak CAAnimations ile benzer bir blok tamamlama geri bildirimi elde edebilirsiniz. Bu işlem, bu işlemde bulunan tüm animasyonların tamamlanmasında bir blok yürütür. Bu şekilde gitmek isteyip istemediğini düşünecek bir şey. –