如何用动画取消隐藏视图

时间:2011-08-14 22:14:17

标签: iphone xcode cocoa-touch

假设我在Xcode for iOS中有隐藏视图。现在,当我将视图设置为不隐藏(view.hidden = NO)时,如何才能使它现在显示,但是有动画?

4 个答案:

答案 0 :(得分:54)

您可能不希望设置view.hidden,而是将view.alpha设置为0(对应hidden = YES)或1(hidden = NO)。

然后,您可以使用隐式动画来显示视图,例如

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

答案 1 :(得分:8)

如果您想要其他动画而不仅仅是褪色,请使用此方法

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

            [_yourView setHidden:NO];

        } completion:nil];

答案 2 :(得分:5)

对于淡入淡出,您可以调整视图的alpha属性。

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

这将在0.5秒内对视图myView应用淡入淡出。许多UIView属性都是可动画的;你不仅限于alpha衰落。您可以使用动画更改背景颜色,甚至旋转和缩放视图。如果你需要进一步的控制和高级动画,你可以进入核心动画 - 一个更复杂的动画框架。

答案 3 :(得分: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];