在写项目的时候,会遇到很多稀奇古怪的需求,我就碰到一个写一个网站,需要强制横屏,然后不需要上架,网上看了很多大神的需求,基本都能实现,但是不太好用,
自己参考搞了一个,代码如下:
AppDelegate.h
@property(nonatomic,assign)BOOL allowRotation;//是否允许转向
.m
#pragma mark 支持窗口翻转 - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window { if (_allowRotation == YES) { return UIInterfaceOrientationMaskLandscapeRight; }else{ return (UIInterfaceOrientationMaskPortrait); } }
横屏展示的viewcontroler:
.m
- (void)setNewOrientation:(BOOL)fullscreen { if (fullscreen) { NSNumber *resetOrientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationUnknown]; [[UIDevice currentDevice] setValue:resetOrientationTarget forKey:@"orientation"]; NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft]; [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"]; }else{ NSNumber *resetOrientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationUnknown]; [[UIDevice currentDevice] setValue:resetOrientationTarget forKey:@"orientation"]; NSNumber *orientationTarget = [NSNumber numberWithInt:UIInterfaceOrientationPortrait]; [[UIDevice currentDevice] setValue:orientationTarget forKey:@"orientation"]; } } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. AppDelegate * appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate; appDelegate.allowRotation = YES;//(以上2行代码,可以理解为打开横屏开关) [self setNewOrientation:YES];//调用转屏代码 [self creatWebView]; } -(void)creatWebView { UIWebView *webV = [[UIWebView alloc]initWithFrame:self.view.frame]; [webV loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.badiu.com"]]]; [self.view addSubview:webV]; }
这样的话,进入的vc直接就是横屏展示了,我是在这定死了,只能向右横屏展示,这个可以自己设置的,根据重力展示,如图:
在上架箭头的地方设置即可!