2014-08-31 63 views
1

在我的应用程序我想改变基于相机的uiview的背景,所有工作正常,但问题是背景变化太急剧(我认为是因为焦点)。如何平稳地更新UIView背景

所以有一种方法可以顺利地改变UIView的背景颜色?

我实际使用此代码:

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

UIView的动画解决方案不起作用东阳的变化太快。

+0

你的UIView动画代码是什么?这些长度是可以自定义的,所以你应该能够减慢速度。 – 2014-08-31 11:53:49

+0

我使用的UIView animateWithDuration:动画:方法,但即使我把一个持续时间od 0.003秒,变化不光滑 – Gnamm 2014-08-31 15:18:28

回答

0

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

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

这是行不通的,也许在0.2秒的背景变化8 o 9次,因为我得到的数据相机和它实时更新视图 – Gnamm 2014-08-31 16:21:36

+0

好吧,我想我可能误解了你原来的问题。将SetDuration减少到更快的值有帮助吗? – Gismay 2014-08-31 16:26:16

+0

不,我试过了。我认为,如果我想实时做所有事情,唯一的解决办法就是彻底改变背景变化。不管怎么说,还是要谢谢你 – Gnamm 2014-08-31 16:33:06