2011-07-04 71 views
0

當按下按鈕時,我需要將UIImage淡入到屏幕上。按鈕代碼已經完成並可以工作,但由於我是IOS開發新手,我不確定UIImage屬性能夠實現這一點。無法確定UIImage不透明屬性

回答

0

你可能想要使用CoreAnimation。 UIImage沒有不透明屬性,因爲它沒有任何顯示邏輯,但UIImageView確實並且因爲它是UIView的子類。

換句話說,UIImage只是一個圖像。如果你想改變繪製的不透明度,那麼你想和做繪製的actor(通常是UIImageView)交談。

因此,例如

// set the current alpha to 0.0f 
someImageView.alpha = 0.0f; 

// use the UIView convenience methods to create a CoreAnimation block. Have the 
// animation just be to move the alpha up to 1.0f. Because we don't specify any 
// other adjustments, we'll get the default 0.2 seconds and ease in/ease out 
// curve for alpha against time 
[UIView beginAnimations:nil context:nil]; 
    someImageview.alpha = 1.0f; 
[UIView commitAnimations]; 

// the animation will now run autonomously 

你可以做這樣的事情,以響應按鈕按下,你應該實現你正在嘗試。 CoreAnimation可以自動更改一大堆屬性,而不僅僅是alpha,並且可以完成比從一個固定狀態轉換到另一個更復雜的任務,但UIView包裝並顯着簡化了最常見的用途。

0

這就是我如何解決不透明問題和顯示圖像...還有更多(按鈕點擊SEL方法),但確實想顯示那麼多。

-(IBAction) seeImage 
{ 
CGContextRef imageContext = UIGraphicsGetCurrentContext(); 
wisdomView.alpha = 0.0; 

[UIView beginAnimations:nil context:imageContext]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[UIView setAnimationDuration:4]; 
[UIView setAnimationDelegate:self]; 
wisdomView.alpha = 1; 
[UIView commitAnimations]; 

SEL methodSelector = @selector(hideImage); 
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:methodSelector  userInfo:nil repeats:NO]; 

} 

////This is the method that hides the graphic choosen by randNum and make it disappear at the top of the screen 
-(IBAction) hideImage 
{ 

CGContextRef imageContext = UIGraphicsGetCurrentContext(); 
wisdomView.alpha = 1; 

[UIView beginAnimations:nil context:imageContext]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn]; 
[UIView setAnimationDuration:6]; 
[UIView setAnimationDelegate:self]; 
wisdomView.alpha = 0.0; 
[UIView commitAnimations]; 

} 

它的工作原理!如果任何人有任何想法如何使它更好...讓我知道!謝謝大家!