2010-04-13 55 views
2

我有一個視圖,當用戶點擊主視圖時,它將設置hidden。我需要視圖淡入淡出,所以看起來更平滑,而不是消失。讓對象淡入並消失

繼承人到目前爲止我的代碼(這是一個觸摸事件中):

if (!isShowing) { 
     isShowing = YES; 
     myView.hidden = YES; 
        //Needs to fade out here 


} 

    else { 
     isShowing = NO; 
     myView.hidden = NO; 
        //Needs to fade in here 

} 

回答

5

只是包裝你的代碼是這樣的:

[UIView beginAnimations:nil context:NULL]; 

if (!isShowing) { 
    isShowing = YES; 
    myView.hidden = NO 
} 
else { 
    isShowing = NO; 
    myView.hidden = YES 
} 

[UIView commitAnimations]; 

,或者簡化爲這樣:

[UIView beginAnimations:nil context:NULL]; 

isShowing = !isShowing; 
myView.hidden = isShowing? NO : YES; 

[UIView commitAnimations]; 

您可能還想使用UIViewsetAnimationDuration:setAnimationCurve:,或setAnimationBeginsFromCurrentState:方法來定製視圖淡入淡出的方式。

+0

嗯...不能讓它工作。我需要用某種東西來替換UIView嗎?我對可可仍然很陌生。 – nosedive25 2010-04-14 00:02:00

+0

UIView是有方法的類。這個觀點從來沒有出現過嗎?你確定它存在並且是屏幕上任何視圖的子視圖嗎? – 2010-04-14 00:03:52

+0

是的,視圖確實顯示出來,它是主視圖的子視圖。我試着做[UIView setAnimationDuration:5.0];但沒有運氣。 – nosedive25 2010-04-14 00:08:11

6

我從來沒有運氣與隱藏動畫。相反,動畫阿爾法。

+0

這正是我如何做到的。將.alpha屬性從1到0隱藏,從0到1顯示。請記住將它們包裝在beginAnimation和commitAnimation塊中。 – Jann 2010-04-14 17:08:57

+0

或使用塊形式('animateWithDuration:animations:')。 – 2011-10-24 23:37:44

+1

'hidden'是一個布爾屬性。它不能動畫。阿爾法的動畫確實是正確的做法 – 2011-12-30 06:19:52