【发布时间】:2011-04-18 13:39:22
【问题描述】:
我正在开发一个 iPhone 应用程序,其中我实现了一个动画 UIViewAnimationTransitionFlipFromLeft。在这里,我的应用程序在纵向模式下运行良好。它正在执行与指定的动画相同的动画,即从左到右翻转。
但是当我在横向模式下执行此 UIViewAnimationTransitionFlipFromLeft 时,它不会从左向右旋转。取而代之的是从上到下旋转。这是一个非常关键的问题。你能帮我解决这个问题吗?
我用于 iPhone 应用程序旋转视图的代码如下:
CGContextRef context = UIGraphicsGetCurrentContext();
[UIView beginAnimations:nil context:context];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.view.window cache:NO];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];
[UIView commitAnimations];
[self.navigationController pushViewController:objSecond animated:YES];
谢谢, 最好的祝福, 古普里辛格·赛尼
【问题讨论】:
-
您确定您的应用程序支持横向吗?根据您的描述,无论您如何握住设备(横向或纵向),您的应用都会在纵向模式下执行 FlipFromLeft
-
您好,我的应用程序支持 iPhone 中可用的所有四种方向。在纵向模式下,它可以正常地从左到右翻转动画。但是在 ladscape 模式下,它不是从左到右翻转,而是从上到下翻转。你能帮我解决这个问题吗?
-
你能正确地重新格式化你的代码吗?你干嘛……self.view.window.transform = CGAffineTransformMakeRotation(M_PI * 0.50)
-
哦,对不起,那是错误的。我只是在测试这个但没有奏效。你能帮我么。我非常需要它。
-
一点:在上面的代码中,您使用的是旧的 UIView 方法 beginAnimations:context:。 context 参数不是 CGContextRef。这是您用来跟踪哪个动画是哪个动画的关键。它应该是一个NSString。我希望传入 CGContextRef 会导致编译器警告,并且可能会导致内存管理问题,因为 CGContextRef 是核心基础对象,而不是 NSObject。
标签: iphone uiview core-animation uiviewanimation uiviewanimationtransition