如何从UIView中的一种背景颜色淡出到另一种颜色?在UIView中将背景色从一种颜色淡出到另一种颜色
在javascript中(jQuery的),可以通过执行做了以下:
$('body').animate({ backgroundColor: "#ff00ff"});
它会更容易,如果我转换的颜色HSV?
编辑: 试图用CABasicAnimation做它,但它由于未知原因闪烁白色。 :/
CABasicAnimation* fade = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
fade.fillMode = kCAFillModeForwards;
fade.removedOnCompletion = NO;
// fade.fromValue = (id)[self.view backgroundColor].CGColor;
fade.toValue = (id)[UIColor greenColor].CGColor;
[self.view.layer addAnimation:fade forKey:@"fade"];
然后我试图找到另一种方法来做到这一点,并偶然发现“隐式动画”。下面的作品有很好的淡入淡出效果:
[UIView beginAnimations:@"fade" context:nil];
[UIView setAnimationDuration:1];
[[self view] setBackgroundColor: [UIColor greenColor]];
[UIView commitAnimations];
谢谢,StackOverflow,帮助大家学习更多。 :)
重复:http://stackoverflow.com/questions/518192/how-do-you-explicitly-animate-a-calayers-backgroundcolor – 2011-01-24 17:43:07