iPhone中的翻转过渡

iPhone中的翻转过渡,iphone,Iphone,我在iPhone中翻转视图时遇到问题 我在appDelegate中有两个视图。我想在用户单击按钮时翻转它们 我有以下代码: CATransition *transition = [CATransition animation]; transition.duration = 0.75; [transition @"twist"]; [transition setSubtype:@"fromRight"]; transition.timingFunction = [CAMediaTimingFu

我在iPhone中翻转视图时遇到问题

我在appDelegate中有两个视图。我想在用户单击按钮时翻转它们

我有以下代码:

CATransition *transition = [CATransition animation];

transition.duration = 0.75;
[transition @"twist"];
[transition setSubtype:@"fromRight"];

transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
[transition setFillMode:@"extended"];

[[window layer] addAnimation:transition forKey:nil];


[window addSubview:self.s.view];
[CATransaction commit];
但这是行不通的。有谁知道一个更好的方法来翻转窗口侧的视图吗


我所做的是在相应的ViewController中从appDelegate调用方法来翻转视图。

参见示例代码。特别是
-flipCurrentView
如果您使用的是3.0 SDK,您只需要简单的翻转转换(如天气应用程序),那么您不需要转到
CATTransition
。更高级别的
ui视图
动画过渡将实现您想要的功能,但使用3.0还有一种更简单的方法:只需将新视图显示为模态视图控制器,并将模态过渡样式设置为“翻转”。从第一个控制器中:

UIViewController *controllerForSecondView = ..;
controllerForSecondView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controllerForSecondView animated:YES];
使用
dismissModalViewController
再次反向翻转


@Luke-谢谢,这个示例帮助了我…不过有一个更正(基于UIViewController.h)

从头文件注释中:

//定义以模式显示此视图控制器时将用于该视图控制器的转换样式。在要显示的视图控制器而不是演示者上设置此属性。 //默认为UIModalTransitionStyleSlideVertical。
@属性(非原子,赋值)UIModalTransitionStyle modalTransitionStyle

[transition@“twist”];仅在不添加内容视图的情况下,您需要按如下方式添加窗口:[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];如果您不想使用内容视图并在窗口侧执行此操作,我很好奇您为什么要使用窗口本身执行此操作?这是一个非常不寻常的方法;通常您使用窗口的contentView,而不使用窗口。很好!我一定错过了,但当你没有真正运行你正在编写的代码时,你会得到这样的结果;)谢谢你的建议!注意:根据Jared的回答,设置应该设置为“controllerForSecondView”,而不是“self”。非常正确,我早就应该在Jared第一次发布他的答案时编辑这个了。我现在已经纠正了这个问题。
UIViewController *controllerForSecondView = ..;
controllerForSecondView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controllerForSecondView animated:YES];