【发布时间】:2011-01-25 06:46:12
【问题描述】:
如何在 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];
感谢 * 帮助大家学习更多知识。 :)
【问题讨论】:
标签: iphone uiview uicolor caanimation cabasicanimation