十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
参考链接: iOS屏幕旋
创新互联公司成都网站建设定制制作,是成都网站推广公司,为成都边坡防护网提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站营销推广热线:13518219792
(2)直接上图,(勾选即可)
2.在AppDelegate中添加属性方法
在.h中添加一个属性allowRotation
.m中添加下面的方法
3.在你需要旋转的控制器.m中添加一下方法
4.点击旋转按钮调用- (void)setNewOrientation:(BOOL)fullscreen方法
苹果自动旋转屏幕的设置方法如下:
工具/原料:iPhone12,ios15.1.0。
1、苹果手机调出虚拟按键之后,点击虚拟按键。
2、点击虚拟按键中的“设备”选项。
3、点击“旋转屏幕”选项。
4、根据需要点击屏幕方向进行旋转即可。
preferredInterfaceOrientationForPresentation 打开时当前界面的朝向
shouldAutorotate 是否支持旋转
supportedInterfaceOrientations 所支持的旋转方向
return返回的为当前选中 tabar 的支援情况
在 tabbar 中放UINavigationController后 还需要在 UINavigationController父类中实现如下
然后如果某个界面想支持屏幕旋转 只需要在Controller里面重写写方法即可
需要在 如下方法中新加
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];//此方法
....
}
这样就会解决横屏模式下打开 APP 产生的一些问题
(情况二 容易出现的一些问题为:当你在didFinishLaunchingWithOptions中 加载了另一个 window 的时候需要在自己建的 window 中也遵守屏幕旋转的几个代理方法 不然横屏模式下打开APP布局依然会乱)
有问题请留言 TUT (编辑于 2018.09.03)
在设置里控制。
苹果手机设置屏幕旋转,首先,打开苹果手机的屏幕,用手指从屏幕底部向上滑动,即可打开手机的控制中心,是在控制中心的右上角的那个旋转按钮,就是要找的关闭屏幕旋转的开关。
点击这个按钮,当按钮高亮显示的时候,就说明我们已经关闭了手机屏幕旋转功能,而再点击一次,按钮变暗,说明自动转屏打开。通过呼出这个按钮,就可以轻松的设置苹果手机的屏幕旋转了。
背景: app内有一个双页的界面,然后某天运营说如果其中一页能支持横屏的话,对接的媒体就能给一整块屏幕,然后需求就这样下来了(双页:一页支持横屏效果,另一页不支持)。
接下来就�是查文档时间了,Duang,一下就查到了有没有,就是下面这两个方法。
//支持设备自动旋转
//支持横竖屏显示
然后发现单纯这两个方法并没有什么用,因为看文档发现这个需要设置在根视图中,具体说明如下:
也就是说到目前为止这两个方法是全局设置的(打断点发现其实是每个视图进行屏幕旋转时都会去根视图里请求这个方法),好吧,接着查,终于让我查到了解决方法。在根视图中还是继续调用这两个方法,但是shouldAutorotate方法稍微改动了一下,意思就是让系统再去当前显示的那个VC中去问应不应该允许屏幕旋转。
接下来就可以在想要支持设备旋转的VC里重写这两个方法了。
到这里其实指定视图的屏幕自动旋转其实就实现了,可是需求提的是在当前这个VC中两个页面一个支持旋转一个不支持旋转,所以便加上了一个BOOL属性值来判断地图页面是否展示,如果展示就支持旋转。
功能实现了,接下来是页面适配。现在屏幕旋转过来完全无法直视啊,视图只展示在了屏幕左面的一小部分,接着去找解决方法。发现在屏幕旋转时系统会抛出来一个通知:
接下来在回调方法里面重新设置一下各个视图的frame就可以了,还有就是应该在各个View的layoutSubviews里面判断一下,为横竖屏分别写一下视图坐标。
最后一个需求,屏幕方向的手动设置(因为一个界面支持横屏,如果在横屏模式下切回另一个只支持竖屏的界面就会出现问题,所以需要在切回之前重新设置下屏幕方向)。
这里吐槽一下,真的一定要吐槽一下,在百度上搜了半天,也可能是我搜索的方式有问题吧,告诉我的都是那个已经被苹果私有化的那个方法,然后果断Stack Overflow,果断秒解决。
OK,到这里需求就完全实现了,另外说一下全局设置的方法,之前最上面的那个算一种,然后也可以在TARGETS设置里面勾选,也可以在AppDelegate中设置。
最后一点就是其实还有一种伪屏幕旋转,其实就是设置View的transform来旋转一定的角度,不过这个方法计算坐标实在是太伤脑筋了,感兴趣的可以自己试试。
开发了很久一直没有用到过屏幕旋转,一般app设置固定竖屏也就可以了,但是涉及到视频播放的时候全屏播放就是不得不实现的功能了,我们主要介绍两点
备注已经很详细了
还可以根据statusBar的方向判断
如果我们想在页面中通过按钮设置屏幕方向,那么我们需要先设置支持的方向
有人可能使用过以下方法,不过应该被禁了,不能上架
⚠️警告 同时使用UIDeviceOrientationDidChangeNotification监听屏幕旋转方向并手动设置屏幕物理方向会出现死循环
参考文章