【问题标题】:How to update UIView background smoothly如何顺利更新 UIView 背景
【发布时间】:2014-08-31 11:43:00
【问题描述】:

在我的应用程序中,我想根据相机更改 uiview 的背景,一切正常,但问题是背景变化太剧烈(我认为是因为焦点)。

那么有办法平滑地改变 UIView 的背景颜色吗?

我实际上使用了这段代码:

dispatch_async(dispatch_get_main_queue(), ^ {
        [myview setBackgroundColor:[UIColor colorWithRed:red green:green blue:blue alpha:1]];
});

UIVIew 动画解决方案不起作用,因为变化太快。

【问题讨论】:

  • 你的 UIView 动画代码是什么?长度可在这些中自定义,因此您应该能够放慢速度。
  • 我使用 UIView animateWithDuration: animations: 方法,但即使我设置了 0.003 秒的持续时间,更改也不顺利

标签: objective-c xcode ios7 uiview


【解决方案1】:

在设置背景颜色之前做一些类似的事情;

CATransition *transitionAnimation = [CATransition animation];
[transitionAnimation setType:kCATransitionFade];
[transitionAnimation setDuration:0.2f];
[transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]];
[transitionAnimation setFillMode:kCAFillModeBoth];
[myview layer addAnimation:transitionAnimation forKey:@"fadeAnimation"];

希望这会给您带来柔和的颜色变化。

【讨论】:

  • 那行不通,可能在 0.2 秒内背景会改变 8 到 9 次,因为我从相机获取数据并实时更新视图
  • 好的,我想我可能误解了你原来的问题。将 SetDuration 降低到更快的值有帮助吗?
  • 不,我试过了。我认为,如果我想实时完成所有工作,唯一的解决方案就是让背景发生急剧变化。还是谢谢
猜你喜欢
  • 2016-10-10
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
相关资源
最近更新 更多