我目前有一个包含在视图中的视图。主视图控制器(父视图)具有在接口构建器中连接到子视图的属性。子视图包含一个按钮。我想按钮翻转子视图,同时保持主视图静止。我目前在IBAction中有以下代码用于按钮:
[UIView transitionWithView: self.subViewFront
duration: 1.0
options: UIViewAnimationOptionTransitionFlipFromTop
animations: nil
completion: nil];
[UIView commitAnimations];
[[self view] addSubview: self.subViewBack;
这段代码效果很好,但是在查看Apple的API参考时我注意到了以下内容:
在iOS 4及更高版本中不鼓励使用本节中的方法。 改为使用基于块的动画方法。
遵循此建议我尝试使用以下代码:
[UIView transitionFromView: self.subViewFront
toView: self.subViewBack
duration: 1.0
options: UIViewAnimationOptionTransitionFlipFromTop
completion: nil];
看起来它应该与我最初编码的相同,但是,当我使用此代码运行我的应用程序时,它会翻转我的整个视图(父视图和子视图)而不仅仅是子视图。这种方法应该用作我用过的原始方法的替代品,还是我缺少的东西?感谢。
答案 0 :(得分:4)
我遇到了同样的问题(相反,父级动画制作了动画),但通过将两个视图(subViewFront
和subViewBack
)添加到容器视图来解决它。
因此,请将您的两个视图添加到容器UIView
,然后使用-transitionFromView:...
,就像您的示例所示:
UIView *container = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];
[self.view addSubview:container];
...
[container addSubview:self.subViewFront];
[container addSubview:self.subViewBack];