2011-09-19 11 views
6

iOS'da beginAnimation-commitAnimation belgelerinin kullanımı önerilmez. Yani animasyonlar ve geçişler için^blokları kullanan yeni yöntemler var. Ancak transitionWithView kullandığınızda: süresi: seçenekleri: animasyonlar: ben o şu şekildeUIView geçiş animasyonu geçiş ile çalışmazWithView: süre: seçenekler: animasyonlar: tamamlama yöntemi

[UIView transitionWithView:self.view duration:1.0 options 
     UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 
     animations:^{ 
      firstView.hidden = YES; 
      secondView.hidden = NO; 
     } completion:NULL 
     ]; 

Yaparsam

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
         forView:self.view cache:YES]; 

firstView.hidden = YES; 
secondView.hidden = NO; 
[UIView commitAnimations]; 

çalışır ancak: tamamlama yöntemi ben yazarsam hiçbir geçiş effects.So olsun herhangi bir geçiş etkisi yoktur. Neyi kaçırıyorum?

cevap

18

Tamam, animasyon ve geçişlerin iOS 4 ve daha üstü sürümlerde kullanılabilmesi için herkesin not alması gereken ince ayrıntıyı buldum. Yöntem için animasyon/geçiş seçeneklerini belirlerken sabitleri, içindeki "Seçenek" kelimesiyle birlikte kullanın. Bunun yerine

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp 

yazma biz geçiş o gözlem için sadece iyi

+0

Teşekkür çalıştığını tespit sonrasında

yazmalı. Iyi bilgi! – GrimmRanger

+0

Ha, güzel nokta ve otomatik tamamlama ile yapmak kolay hata ... ihtiyacınız olduğunda tip güvenliği nerede! – bandejapaisa

+0

Aman Tanrım! Bunu bulana kadar iki sinir bozucu saat geçirdim. Apple'ın “opsiyonel olmayan” versiyonlarını ciddi şekilde düşürmesi gerekiyor. – rushinge

İlgili konular