1.新建项目,默认屏幕可以旋转以及旋转方向。
2.如果项目中所有页面不支持旋转,则直接勾掉就行了。
3.重点来了:如果想实现部分页面竖屏,个别的页面横屏怎么办?(比如播放页面横屏)
复写UIViewcontroller的下面几个模板函数。
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0);
当前viewcontroller是否支持转屏
- (NSUInteger)supportedInterfaceOrientations;
当前viewcontroller支持哪些转屏方向
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
当前viewcontroller默认的屏幕方向
方法一:
1)如果目标ViewController是由NavigationController引用的,则只能在NavigationController中重写上述方法,反之在目标ViewController中重写则无效。
2)下边说一下具体的做法:
1*自定义NavigationController。
2*重写上述的三个模板函数。
3*在- (BOOL)shouldAutorotate方法里判断哪个类需要旋转,哪个类不需要;
方法二:
在APPDelegate.h文件中增加属性:是否支持横屏
/*** 是否允许横屏的标记 */@property (nonatomic,assign)BOOL allowRotation;
在APPDelegate.m文件中增加方法,控制全部不支持横屏
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
if (self.allowRotation) {
return UIInterfaceOrientationMaskAll;
}
return UIInterfaceOrientationMaskPortrait;
}
这样在其他界面想要横屏的时候,我们只要控制allowRotation这个属性就可以控制其他界面进行横屏了。
//需在上面#import "AppDelegate.h"
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.allowRotation = YES;
//不让横屏的时候 appDelegate.allowRotation = NO;即可
如果遇到网页需要横屏的解决方案: