2010-09-13 25 views
1

我想使用CATransition在視圖的不同狀態之間提供淡入淡出的動畫。但是,這似乎並不適用於單一視圖(我發現所有示例都使用CATransition在不同視圖之間切換)。相比之下,CABasicAnimation工作得很好。在單個視圖中使用CATransition的可可動畫

我的example code顯示我在做什麼。我有一個自定義視圖(TTView),其中包含兩個要設置動畫的屬性。一種是使用CABasicAnimation(簡單插值)製作的動畫。另一種是布爾狀態,我想在它發生變化時實現淡化效果。 (忽略這個例子使用它來改變一個矩形的大小,這只是爲了保持簡單。)

我做錯了什麼,或者是否CATransition只是不能在單個視圖中工作?

+0

你能否在你的問題中粘貼相關的代碼?到存儲庫的鏈接不夠直接。 – 2010-09-13 19:53:48

回答

0

該代碼有點大,但這裏是TTView實現的最相關部分。 scale屬性是布爾值,其變化是我想用轉換進行動畫處理。

+ (id) defaultAnimationForKey: (NSString *)key 
{ 
    if ([key isEqualToString: @"color"]) { 
    return [CABasicAnimation animation]; 

    } else if ([key isEqualToString: @"scale"]) { 
    return [CATransition animation]; 
    } 

    return [super defaultAnimationForKey:key]; 
} 

/* ... */ 

- (IBAction) toggleScale: (id)sender 
{ 
    [[self animator] setScale: !self.scale]; 
} 

我只注意到CATransition不是CAPropertyAnimation一個子類,所以也許這是我的真正的問題。

相關問題