我正嘗試在自定義類中創建一個動畫,該動畫將在像所有UIView元素一樣的動畫塊中觸發。獲取自定義類中的動畫持續時間
我的課:
@interface SmileyFace : NSObject
@property (strong, nonatomic) uicolor* color;
@end
我改變了色彩搭配:
[UIView animateWithDuration:3 animations:^{
myView.frame = newFrame;
smileyView.color = [uicolor redcolor];
}];
現在,在屬性顏色的二傳手, 我需要找出是否應該動畫,並添加一個自定義動畫:
-(void)setColor:(UIColor *)color
{
_color = color;
NSLog(@"new frame");
if ([CATransaction animationDuration] > 0)
[self changeColor:color withAnimationWithDuration:[CATransaction animationDuration]];
else
[self changeColor:color];
}
由於我的對象是一個自定義對象,我不是確定如何訪問動畫的持續時間。 從CAtransaction,我總是得到0.25作爲持續時間。
任何幫助將不勝感激!
SmileyFace爲什麼不從UIView繼承? –
因爲它實際上不是一個視圖,而是一個通信機制,它不能從UIView繼承,但行爲非常相似 –
那麼動畫究竟是如何工作的呢?是什麼'presentationSmiley'? –