今天使用 CABasicAnimation 动画效果始终保护出来,搞了半天,跳楼的心都有了,写下了,作为自己的警告!
看下面的这段代码,看似没问题,运行也没问题,可效果就是不出来
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
animation.fromValue = (id)[UIColor colorWithRed:0.723 green:0.151 blue:1.000 alpha:1.000];
animation.toValue = (id)[UIColor colorWithRed:0.491 green:1.000 blue:0.530 alpha:1.000];
animation.duration = 3.0f;
animation.autoreverses = YES;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.views.layer addAnimation:animation forKey:@"myAnimation"];
再看这段代码,发现不同之处没,问题就在 层的颜色类型为 CGColorRef 所以这里颜色需要转换为 CGColor
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
animation.fromValue = (id)[UIColor colorWithRed:0.723 green:0.151 blue:1.000 alpha:1.000].CGColor;
animation.toValue = (id)[UIColor colorWithRed:0.491 green:1.000 blue:0.530 alpha:1.000].CGColor;
animation.duration = 3.0f;
animation.autoreverses = YES;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
[self.views.layer addAnimation:animation forKey:@"myAnimation"];
在程序的执行过程中,往往就是因为这些小的问题发现不了,浪费了太多的时间!