我想使用CATransition
在视图的不同状态之间提供淡入淡出的动画。但是,这似乎不适用于单个视图(我发现所有示例都使用CATransition
在不同视图之间切换)。相比之下,CABasicAnimation
工作正常。
我的example code显示了我正在做的事情。我有一个自定义视图(TTView
),其中包含两个我想要设置动画的属性。一种是使用CABasicAnimation
(简单插值)动画的颜色。另一种是布尔状态,我想在它改变时实现淡化效果。 (忽略这个例子使用它来改变矩形的大小,这只是为了保持简单。)
我做错了什么,或者CATransition
只是在一个视图中不起作用?
答案 0 :(得分: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
的子类,所以也许这是我真正的问题。