【问题标题】:How to unhide view with animations如何用动画取消隐藏视图
【发布时间】:2011-08-14 22:14:17
【问题描述】:

假设我在 Xcode for iOS 中有一个隐藏视图。现在,当我将视图设置为不隐藏 (view.hidden=NO) 时,我怎样才能让它现在出现,但带有动画?

【问题讨论】:

  • 你是什么意思,“有动画”?
  • 任何动画,例如滑入或淡入,或 Cocoa touch 可能提供的任何其他动画

标签: iphone xcode cocoa-touch


【解决方案1】:

您可能想要的不是设置view.hidden,而是设置view.alpha0(对应于hidden = YES)或1(hidden = NO)。

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

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

【讨论】:

  • 如果您必须始终使用动画执行此操作,您可以覆盖 setHidden 和 isHidden :)
【解决方案2】:

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

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

            [_yourView setHidden:NO];

        } completion:nil];

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:
      -(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];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多