作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 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 帮助每个人了解更多信息。 :)
最佳答案
您不需要创建两个 UIView 并淡入淡出 - 当颜色属性本身可设置动画时,为什么要费心让一个额外的多余 View 卡在周围呢?
您可以如上所示使用 CAAnimation,但无需调整两个 View 的不透明度,只需调整一个 View 的背景颜色。
关于iphone - 在 UIView 中将背景颜色从一种颜色淡入另一种颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4785042/
我是一名优秀的程序员,十分优秀!