如何在简单的 View iPhone App 上为 View Swap 设置动画?

Posted

技术标签:

【中文标题】如何在简单的 View iPhone App 上为 View Swap 设置动画?【英文标题】:How to animate View swap on simple View iPhone App? 【发布时间】:2009-06-11 20:52:05 【问题描述】:

有一个简单的 iPhone 应用程序,其中一个 UIViewController 和两个视图在一个 xib 中。

第一个视图非常简单,有一个按钮,按下按钮后,第二个更复杂的视图通过在控制器上设置 view 属性加载。

我想要的是动画视图交换(翻转视图)。

我看到的示例都需要多个视图控制器并构建层次结构,但在这种情况下这将是矫枉过正,有什么建议吗?

【问题讨论】:

【参考方案1】:

确保您在视图控制器中为两个视图声明 IBOutlets 我假设在您的 xib 中您有一个占据整个屏幕的“容器视图”,以及您添加到此容器的两个相同大小的视图(一个用于“翻转”的每一侧):

//Inside your .h:
IBOutlet UIView *firstView;
IBOutlet UIView *secondView;

确保在初始加载时显示 firstView:

-(void) viewDidLoad 
  NSAssert(firstView && seconView, @"Whoops:  Are first View and Second View Wired in IB?");
  [self.view addSubview: firstView];  //Lets make sure that the first view is shown
  [secondView removeFromSuperview];  //Lets make sure that the second View is not shown at first

然后你可以像这样连接一个按钮,确保按钮连接到 IB 中的这个方法:

-(IBAction) flipButtonPressed:(id) sender 
  [UIView beginAnimations:nil context:NULL];
  [UIView setAnimationDuration:0.5];
  if ([firstView superview]) 
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
     [firstView removeFromSuperview];   
     [self.view addSubview:secondView];
  
  else if ([secondView superview]) 
     [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
     [secondView removeFromSuperview];  
     [self.view addSubview:firstView];
  
  [UIView commitAnimations];

【讨论】:

谢谢,这正是我设置的方式,这应该可以在没有任何重大变化的情况下工作......

以上是关于如何在简单的 View iPhone App 上为 View Swap 设置动画?的主要内容,如果未能解决你的问题,请参考以下文章

我如何在 google app 引擎上为 html5 创建 websocket

MVC如何在主页上为多个网格返回VIEW?

您如何在 iPhone 上为 PayPal 的电话 SDK 保护您的 PayPal 应用程序 ID?

在 iPhone 上为不同的图像尺寸使用 Xcode 自动布局

如何在 iTune Connect 上为我的 iPhone 应用程序设置自动更新应用程序内购买?

如何在 Google App Engine 上为 BigQuery 设置截止日期