SORU
7 Aralık 2008, Pazar


Nasıl geçerli bir bakış açısı UİView dönüşüm?

Bir perspektif UİView (coverflow görüldüğü gibi) dönüşümü gerçekleştirmek için arıyorum

Anyonew eğer bu mümkün olup olmadığını biliyor mu?

CALayer kullanma hakkında küçük bir araştırma yaptım ve pragmatik programcı ile Temel Animasyon podcast çalıştırmak zorunda, ama yine de bir iPhone dönüşüm bu tür oluşturmak için nasıl bir net değilim.

Herhangi bir yardım veya işaretçiler örnek kod parçacıkları çok mutluluk duyacağız!

CEVAP
9 Aralık 2008, Salı


Ben de söylediğiniz gibi, UİView tabaka ile, CATransform3D katman rotasyon gerçekleştirmek için kullanmaya çalışmak gerekir. Perspektif çalışma, described here olarak elde etmek için hile doğrudan CATransform3D matris hücreleri (m34) erişmek için. Matris matematik asla benim bir şey olmuştur, bu işleri tam olarak açıklayamam, ama yok. Bu değer, ilk dönüşüm için olumsuz bir kısmını, katman rotasyon bu dönüşümleri uygulamak için ayarlamak gerekir. Bunlar: yapmak gerekir

UIView *myView = [[self subviews] objectAtIndex:0];
CALayer *layer = myView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;

hangi katmanın her bir rotasyon için sıfırdan bir dönüşüm oluşturur.

Bu tam bir örnek (kod ile) Bill Dudney ile dokunmatik tabanlı rotasyon uygulanması ve bir örnek dayalı CALayers birkaç Ölçekleme, benim nerede olduğumu here, bulunabilir. Programın en yeni sürümü, sayfanın en altındaki bakış açısı bu tür bir işlem uygular. Kod oldukça basit okumak gerekir.

Tepki bahsettiğiniz sublayerTransform senin UİView en alt katmanı için uygulanan dönüşüm CALayer var. Eğer herhangi bir alt katmanlar yok eğer doğru değilse, merak etmeyin. Sadece dönen olduğum iki CALayers bir katman içinde yer vardır çünkü benim örnekte sublayerTransform kullanıyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • DominicFear

    DominicFear

    30 Kasım 2006
  • MyCyberAcademy

    MyCyberAcade

    2 EKİM 2011