这两天研究了下ios的屏幕方向控制..总结一下,希望对大家有帮助
首先说下plist文件的配置,这里面可以设置应用支持那些方向,但是应用默认会选择设置的第一个方向作为默认方向。
一般设置Supported interface orientations 为:Portrait (bottom home button) 即 竖屏方向。
然后Appdelegate里的didFinishLaunchingWithOptions方法中需要设置为:
[self.window addSubview:navigationController_.view];
然后在ViewController中实现一下方法,当然,方法中的返回值根据你想支持的方向来返回对应的值:
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortraitUpsideDown:UIInterfaceOrientationMaskPortrait;
}
-(BOOL)shouldAutorotate{
return YES;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortraitUpsideDown:UIInterfaceOrientationPortrait;
}
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown;
}
另外,还要在viewWillAppear方法中添加一个视图旋转的代码,假如你想让屏幕方向倒置,那么你可以这样写:
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortraitUpsideDown];
self.navigationController.view.transform = CGAffineTransformIdentity;
self.navigationController.view.transform = CGAffineTransformMakeRotation(M_PI);
self.navigationController.view.bounds = CGRectMake(self.navigationController.view.bounds.origin.x, self.navigationController.view.bounds.origin.y, ScreenWidth ,ScreenHeight);
通过这样做以后就可以适应IOS5以前和以后的平台,如果路过的高手有其他方式实现,请指导.....