iOS强制单一界面 屏幕旋转

iOS强制单一界面 屏幕旋转大致两种方案吧,

1

一种是在Appdelegate中设置一个值 allowrotation,用来控制窗口的方向

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {    //添加 判断    return UIInterfaceOrientationMaskAll;}

然后再在 要进入的页面设置 allowRotation的值,然后设置设备的方向进行旋转。

详细见文章 iOS - 强制某个页面横屏,返回竖屏 -

当然旋转完后,UI的适配之类的需要自己调整, 具体的效果自己调整一番即可,不难,对于监测屏幕旋转的方法系统的traitCollection有提供控制器和视图的方法 

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator

可以自己判断一下,或者根据size 判断pad的横竖屏之类的,也可以进行视图的刷新,此外就是在viewwillappear 和 viewdidlayoutsubviews这些方法中更新,

2 方法二 

首先先对屏幕旋转的层级了解一番
iOS设置某个界面强制横屏,进入就横屏 - 爱生活爱代码 - 博客园

iOS屏幕旋转及其基本适配方法 - 云+社区 - 腾讯云

第二种方式本人只测试了  present  有导航控制器的页面强制竖屏,至于有tabbarcontroller 等的三级控制器以及push操作并未操作

总体上是,一下三个方法,但在不同的控制器中实现不一样

tabbarcontroller中的设置

导航控制器中

具体控制器中

如果有解得请详细阅读本文的链接,此外,自己操作一番,当然很重要的一点,是需要设置一样屏幕支持旋转的方向,以及supportedInterfaceOrientations 和 preferredInterfaceOrientationForPresentation 返回值是否有交集的方向

你可能感兴趣的:(iOS强制单一界面 屏幕旋转)