2012-05-15 16 views
5

Bazı alt görünümleri içeren bir görünümü daraltmak için bir animasyon yapmaya çalışıyorum.iOS, alt görünümler içeren bir görünümü canlandırıyor

[UIView beginAnimations:@"advancedAnimations" context:nil]; 
[UIView setAnimationDuration:3.0]; 

CGRect aFrame = aView.frame; 
aView.size.height = 0; 
aView.frame = aFrame; 

[UIView commitAnimations]; 

Bu animasyon gayet güzel, ancak sadece aView için. Alt gösterimler beklendiği gibi çökmez. Altyazıları da nasıl daraltırım? Dahası, çöktükten sonra orijinal boyutunu yeniden hesaplamanın bir yolu var mı?

THX

cevap

5

Büyük olasılıkla otomatik görüntüleme maskesini alt görüntülemelerinize uygulamanızı unutmuşsunuzdur. Çalışırsa,

yapmalısınız. Lamelas oh çok çok daha güzel O

aView.transform = CGAffineTransformMakeScale(1.0,0.0); 
+0

Yine de iyi, ama yapmak istediğim şey görünümü küçültmek, içeriğini küçültüldüğünde gizlemek. CGAffineTransformMakeScale, tüm içeriği ölçeklendirir. BTW, 0,0 dönüşümde kullanamazsınız. – toppless

+0

Dönüştürmelerde 0.0 kullanamayacağımızı nereden anladınız? Her neyse, senin sorunun ne olduğundan emin değilim… Eğer altyazıların ölçeklenmesini istiyorsun, yoksa animasyonun gerçekleşmesi için kırpılmasını mı istiyorsun? – Zoleas

+0

0,0 değerine ayarlamaya çalışın ve animasyonun neye benzeyeceğini görün ve 0,001 olarak ayarlayın. Alt görünümleri yeniden boyutlandırmak değil, ana görünüm küçüldükçe bir "kayar kapı" efekti elde etmek için çalışıyorum. – toppless

4

bu hareketlendirmek için kullanmayı deneyin:

aView.transform = CGAffineTransformMakeScale(1.0,0.0); 
+0

+1 dediğim gibi

ANCAK, şahsen, kullanırsınız. – Caleb

+0

Daha iyi çalışır, ancak animasyon biraz garip - görünümü orta noktaya "sıkıştırmaya" çalışır. – toppless

0

Eğitimli tahmin: Ayrıca

[UIView beginAnimations:@"advancedAnimations" context:nil]; 
[UIView setAnimationDuration:3.0]; 

CGRect aFrame = aView.frame; 
aView.size.height = 0; 
aView.frame = aFrame; 

for (UIView *subview in aView.subviews) { 
    CGRect frame = subview.frame; 
    frame.size.height = 0; 
    subview.frame = frame; 
} 

[UIView commitAnimations]; 

, çöken sonra orijinal boyutunu yeniden hesaplamak için bir yol var mı?

Büyük olasılıkla daraltmadan önce yalnızca yüksekliği kaydetmek isteyeceksiniz.

İlgili konular