2011-08-14 57 views
15

假設我在Xcode for iOS中隱藏了視圖。現在,當我將視圖設置爲不隱藏(view.hidden = NO)時,我怎樣才能使它看起來像動畫呢?如何用動畫取消隱藏視圖

+0

你是什麼意思,「機智h動畫「? –

+0

任何動畫,如滑入,或淡入,或任何其他動畫可可觸摸可能提供 – Snowman

回答

54

你可能想要的是不設置view.hidden,但設置view.alpha0(對應於hidden = YES)或1(hidden = NO)。

然後可以使用隱式動畫來顯示視圖,例如

[UIView animateWithDuration:0.3 animations:^() { 
    view.alpha = 1.0; 
}]; 
+1

如果你必須這樣做總是與動畫,你可以覆蓋setHidden和isHidden :) –

5

對於淡入淡出,您可以調整視圖的alpha屬性。

myView.alpha = 0; 
[UIView animateWithDuration:0.5 animations:^{ 
    myView.alpha = 1; 
}]; 

這將在視圖myView上應用0.5秒以上的淡入淡出。許多UIView屬性都是可以動畫的;你不僅限於阿爾法淡入淡出。您可以使用動畫更改背景顏色,甚至旋轉和縮放視圖。如果你需要進一步的控制和高級動畫,你可以進入核心動畫 - 一個更復雜的動畫框架。

1
-(void)showView{ 

    [UIView beginAnimations: @"Fade Out" context:nil]; 
    [UIView setAnimationDelay:0]; 
    [UIView setAnimationDuration:.5]; 
    //show your view with Fade animation lets say myView 
    [myView setHidden:FALSE]; 
    [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(hideView) userInfo:nil repeats:YES]; 

    [UIView commitAnimations]; 
} 


-(void)hideView{ 
    [UIView beginAnimations: @"Fade In" context:nil]; 
    [UIView setAnimationDelay:0]; 
    [UIView setAnimationDuration:.5]; 
    //hide your view with Fad animation 
    [myView setHidden:TRUE]; 
    [UIView commitAnimations]; 
} 

或者如果希望其他動畫不僅僅是褪色,然後用這個你可以嘗試這樣

self.yourView.alpha = 0.0; 
[UIView beginAnimations:@"Fade-in" context:NULL]; 
[UIView setAnimationDuration:1.0]; 
self.yourView.alpha = 1.0; 
[UIView commitAnimations]; 
8

方法

[UIView transitionWithView:_yourView duration:1.0 options:UIViewAnimationOptionTransitionCurlDown animations:^(void){ 

      [_yourView setHidden:NO]; 

     } completion:nil]; 
+0

非常感謝,很好:) – evya

+0

哇...作品像一個魅力!多謝兄弟! –