如何在像快门一样从上到下加载时为 UIView 设置动画?

Posted

技术标签:

【中文标题】如何在像快门一样从上到下加载时为 UIView 设置动画?【英文标题】:How to animate a UIView while loading from top to bottom like shutter? 【发布时间】:2012-08-06 05:15:46 【问题描述】:

我正在尝试开发一个 iphone 应用程序。我知道如何在推入导航堆栈时从左向右滑动视图。但我的要求是在推入导航堆栈时从上到下为视图设置动画。那么该怎么做呢?

我正在搜索谷歌,但没有找到任何令人满意的结果。如果有人知道...请告诉我该怎么做。

info = [[InfoView alloc] initWithNibName:@"InfoView" bundle:nil];   
[self.navigationController pushViewController:info animated:YES];

【问题讨论】:

【参考方案1】:

您可以在将视图控制器推送到导航堆栈时尝试这样的操作:

       SecondViewController *VC2 = [[SecondViewController alloc]init];
       VC2.nameSupplied = self.nameField.text;
       CGPoint mycenter = VC2.view.center;
       CGPoint navCenter = self.navigationController.navigationBar.center;
       VC2.view.center = CGPointMake(mycenter.x , mycenter.y - VC2.view.frame.size.height);
       self.navigationController.navigationBar.center = CGPointMake(navCenter.x, navCenter.y - self.navigationController.navigationBar.frame.size.height);
      [self.navigationController pushViewController:VC2 animated:NO];
      [UIView animateWithDuration:0.5
                            delay:0
                          options: UIViewAnimationCurveEaseOut
                       animations:^
                                  VC2.view.center = mycenter;
                                  self.navigationController.navigationBar.center = navCenter;
                  
                 completion:^(BOOL finished)
                     NSLog(@"Animation Done!");
                 ];

但是,如果您只想在同一个视图控制器中显示另一个视图(从上到下移动),您可以像这样使用 UIView 的 transform 属性:

self.secondView.transform = CGAffineTransformMakeTranslation(0, secondView.frame.size.height);

【讨论】:

@user1523344:如果对您有帮助,您应该接受答案。

以上是关于如何在像快门一样从上到下加载时为 UIView 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

Android 从上到下写一个例子 驱动加载

iOS 7导航栏barTintColor - 能够让它从上到下淡化吗?

如何让容器从上到下向下滚动

如何从上到下创建 UINavigationController 动画 [重复]

如何在Android中给出从上到下的动画?

UITextField 光标从上到下动画然后文本也被动画