有没有办法从shouldAutorotateToInterfaceOrientation跳过动画旋转?

时间:2010-07-12 23:21:38

标签: iphone animation autorotate

我想根据对视图控制器的shouldAutorotateToInterfaceOrientation调用允许方向旋转。但是,我希望它立即这样做并跳过旋转动画(导致角落在整个视图旋转时显示黑色旋转动画的动画。

有没有人知道是否有办法指明你希望它立即发生(没有动画)?

2 个答案:

答案 0 :(得分:2)

为了做你想做的事,你必须手动旋转(和调整大小)你的视图。没有任何属性可以更改为轻松按照您的意愿行事。下面是注册设备旋转事件的代码。

 - (void)viewDidLoad {
 [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:)
             name:UIDeviceOrientationDidChangeNotification object:nil]; 
//Whenever the device orientation changes, orientationChanged will be called

}


- (void)orientationChanged:(NSNotification *)notification
{
UIDeviceOrientation deviceOrientation = [UIDevice currentDevice].orientation;
//Based upon which orientation the device is in, update your View rotations.
//A simple view.transform = CGAffineTransformMakeRotation(whatever); will work well.
}

我相信你应该完全删除shouldAutoRotateToInterfaceOrientation:函数。 您还应该在视图卸载时调用[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];

答案 1 :(得分:0)

不需要手动旋转。有一种方法可以禁用轮换动画

以下是答案:https://stackoverflow.com/a/6589568/894671