如何從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