2011-10-28 61 views
5

我正在將iPhone編程轉換爲本地Mac應用程序。我想念的一部分是UIView動畫系統的簡單性。如何在Cocoa/Mac應用程序開發中做UIView風格的動畫

我有一個UIView子類以下兩種方法:

-(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];  
} 

現在我不知道如何在可可做到這一點。我嘗試了以下方法,但我不確定它是否可以正常工作。

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

我有時調用此函數(隱藏)多次,而淡入淡出功能可能仍在運行。

回答

15

這將產生相同的結果,您的iOS代碼:

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

默認持續時間爲0.25秒。我不確定默認的定時功能是什麼。如果你對默認值沒問題,你可以這樣說:

[_myView.animator setAlphaValue:0.0]; 
+1

不要忘了'#import

相關問題