2013-05-22 21 views
6

Görüntüümün ekranın sol üstünde başladığı ve ekranın ortasındaki orijinal boyut ve yere genişlediği bir UIView animasyonu yapmaya çalışıyorum. Şimdiye kadar bunu ayrı ayrı yapabildim ama bu animasyonları birleştirmeye çalıştığımda sadece ölçek animasyonunu yapacak.Ölçek ve Çeviri Animasyonunu Nasıl Birleştiriyorsunuz

Bu çalışmayı Ölçe ve Çeviri ile aynı anda ile yapmamın bir yolu var mı?

Ben bunu anladım
CGAffineTransform setpointTrans = CGAffineTransformMakeTranslation(-200.0f, -200.0f); 
CGAffineTransform setpointScale = CGAffineTransformMakeScale(0.0f, 0.0f); 
_RSEImage.transform = CGAffineTransformConcat(setpointTrans, setpointScale); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f); 
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(0.0f,0.0f); 
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans); 
[UIView commitAnimations]; 

Tamam, burada değiştiğimi budur:

_RSEImage.transform = CGAffineTransformMakeScale(0.0f, 0.0f); 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDuration:5]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.0f, 1.0f); 
CGAffineTransform lefttorightTrans = CGAffineTransformMakeTranslation(200.0f,200.0f); 
_RSEImage.transform = CGAffineTransformConcat(scaleTrans, lefttorightTrans); 
[UIView commitAnimations]; 
+0

Kodunuzu denedim ve başarmak istediğinizi mükemmel bir şekilde yapıyor: ölçeklendir ve çevir ... Bu kodun önündeki RESImage öğesinin kök noktası nedir? – nzs

+0

x 160 y 242, sanırım ne soruyorsun, üzgünüm bu benim ilk iphone uygulaması. Görüntü boyutu 161 x 71 –

+0

Bu koddan, temelde bu kod parçacığının çalıştığı, çünkü bu sorunun söz konusu olduğunu söylemek zor. Bu, "birleştirme" dönüşümünü etkilemenin yolu. Yani sanırım kodunuzun başka bir kısmı bir şekilde çeviriyi önlüyor ya da görünmüyor… Bir şeyleri yorumlayarak aşamalı olarak eklemeye başlayın ve bu noktaya kadar her şeyin yolunda olduğunu kontrol edin. Örneğin. 0.3 p ölçeği ve -100f çeviri ile ilk 3 satır için bu snippet'i kontrol edin - img'i görüyor musunuz? daha sonra paramizi test etmek için sadece çeviri ekleyin, sonra ölçekle birleştirin. Bloklarım daha kolay olduğu için cevabımı da kullanabilirsiniz. Görüntüyü boyutunun iki katı kadar ölçeklendiren – nzs

cevap

2

Sen iOS4 bu da animasyon blokları, (kullanabilirsiniz Burada

Ben bugüne kadar ne olduğunu): burada

[UIView animateWithDuration: 5 
         delay: 0 
        options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction) 
       animations:^{_RSEImage.center = CGPointMake(300, 300) ; _RSEImage.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0);} 
       completion:^(BOOL finished) { } 
]; 

İlgili resmi doc: link

Orada

Güzel öğretici: link

yardımcı olur Umut!

+0

görüntüyü yine de sol üst köşeden orta noktasına taşımamıştır. –

+0

Sthing tuhaf oluyor ... ;-) _RSEImage'ın türü nedir, kodu görüntüye nasıl eklediğinizi paylaşabilirsiniz? ya da _RSEImage ile ilgili başka herhangi bir kod? – nzs

+0

Bunu çözdüm ve sorumu düzenledim, bu blokları öğreneceğim, çok daha kolay görünüyor. Yardımın için teşekkürler. –

İlgili konular