我正尝试在自定义类中创建一个动画,该动画将在像所有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'? –