2011-10-28 15 views
5

iPhone'u yerel Mac uygulamalarına geçişten geçiş yapıyorum. Kaçırdığım bir kısım, UIView animasyon sisteminin sadeliğidir. Kakao/Mac uygulama geliştirmede UIView stil animasyonları nasıl yapılır

-(void) hide{ 
    _isHidden=YES; 
    [UIView commitAnimations]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration:0.5]; 
    self.alpha = 0; 
    [UIView commitAnimations]; 
} 
-(void) show{ 
    _isHidden=NO; 
    [UIView commitAnimations]; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration:0.5]; 
    self.alpha = 1; 
    [UIView commitAnimations];  
} 

Şimdi kakao içinde bunu gerçekleştirmek için nasıl emin değilim:

UIView alt sınıf için aşağıdaki iki yöntem vardı. Aşağıdakileri denedim ama gerektiği gibi çalıştığından emin değilim.

-(void) hide{ 
    [[_myView animator] setAlpha:0]; 
} 

Bu işlevi (bazen), fade fonksiyonu hala çalışıyorken, bazen birden çok kez saklıyorum.

cevap

15

Bu iOS koduyla aynı sonuç oluşturmalıdır:

[NSAnimationContext beginGrouping]; { 
    [[NSAnimationContext currentContext] setDuration:.5]; 
    [[NSAnimationContext currentContext] setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 
    [_myView.animator setAlphaValue:0.0]; 
} [NSAnimationContext endGrouping]; 

varsayılan süresi 0,25 saniyedir. Varsayılan zamanlama fonksiyonunun ne olduğundan emin değilim. Eğer varsayılan Tamam ile, sadece şunu söyleyebilirim:

[_myView.animator setAlphaValue:0.0]; 
+1

unutma için 'alma ' –

İlgili konular