0

我有一个视图控制器,它被分配为 rootViewController,如下所示:

self.viewCntrl = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewCntrl;

在同一个视图控制器中,我有一个按钮,我在按钮单击时执行转换动画,如下所示:

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view.superview cache:YES];

但是当我这样写时它不起作用:

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.view cache:YES];

因为这里 self 是 ViewController 的对象,ViewController 只不过是分配给 self.window.rootViewController。那么为什么需要 self.view.superview 而不是 self.view 来制作动画呢?

4

1 回答 1

1

根据您尝试执行的动画类型,答案可能在这里

如果你想在过渡期间改变视图的外观——例如,从一个视图翻转到另一个——然后使用容器视图,即 UIView 的一个实例,如下所示:

  1. 开始一个动画块。

  2. 在容器视图上设置过渡。

  3. 从容器视图中移除子视图。

  4. 将新的子视图添加到容器视图。

  5. 提交动画块。

于 2012-08-01T11:25:41.537 回答