废话少说,直接上代码:
代码实现如下:
// 如果整个应用都不支持旋转,在AppDelegate中添加这个方法即可
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return UIInterfaceOrientationMaskPortrait;
}
// 下面的旋转都是针对某个视图控制器是否要旋转而言
// ios 6以前的设备旋转
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
// ios 6以后的设备旋转
- (BOOL)shouldAutorotate
{
return YES; // 支持旋转
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll; // 支持旋转方向的组合
}
// 旋转时,回调方法的调用顺序
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"111");
}
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
NSLog(@"222");
// 下面两个方法可以代替willAnimateRotationToInterfaceOrientation: duration:
/*
1、willAnimateFirstHalfOfRotationToInterfaceOrientation:duration
2、willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration
*/
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
UIInterfaceOrientation oritention = [[UIApplication sharedApplication] statusBarOrientation]; // 获取当前设备的旋转方向
NSLog(@"333");
}
至此,ios 6之前和之后关于设备旋转的介绍已经完毕。