2014-08-31 81 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