ios 旋转屏幕试图切换_iOS屏幕横竖屏切换
iOS屏幕横竖屏切换
胡东东博客 • 2020 年 10 月 25 日
搜了网上的教程是真的乱,废话不多说,这里从启动到具体的VC,横竖屏切换完美搞定。
如果你的app只需要支持一个方向,那么不需要看以下内容,只需要将项目的General设置中,将Device Orientation勾选需要支持的方向即可
一、启动页LaunchScreen
启动页是系统的默认根据info.plist的设置显示,启动时就加载了,加载时机很早,所以你要决定启动页要不要根据手机横竖屏自动旋转,还是保持固定的方向。
1.1、启动页需要根据手机横竖屏自动旋转
如果启动页需要根据手机横竖屏自动旋转,只需要在项目的General设置中,将Device Orientation勾选需要支持的方向即可。这样在横屏或者竖屏启动时会默认加载指定的方向
1.2、启动页固定方向,后续VC支持旋转
正如上面说的启动页加载很早,所以需要在info.plist固定方向,在Appdelegate里面设置VC支持的旋转方向,例如启动页固定竖屏,VC支持横竖屏在项目的General设置中,将Device Orientation只勾选Portrait
在Appdelegate中动态设置支持的旋转方向func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return .all
}
二、控制器VC的旋转设置
控制器VC的旋转会根据顶部的VC设置,所以看你是否用了导航控制器navigationController和tabbarController,如果是嵌套使用,除了设置指定的VC控制器,还需要设置navigationController和tabbarController的属性,可以自定义这两个子类。
2.1、tabbarController的子类实现override var shouldAutorotate: Bool {
return self.selectedViewController?.shouldAutorotate ?? false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return self.selectedViewController?.supportedInterfaceOrientations ?? .portrait
}
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return self.selectedViewController?.preferredInterfaceOrientationForPresentation ?? .portrait
}
2.2、navigationController的子类实现override var shouldAutorotate: Bool {
return self.topViewController?.shouldAutorotate ?? false
}
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return self.topViewController?.supportedInterfaceOrientations ?? .portrait
}
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return self.topViewController?.preferredInterfaceOrientationForPresentation ?? .portrait
}
2.3、指定VC的实现//是否需要自动旋转
override var shouldAutorotate: Bool {
return false
}
//支持的旋转方向
override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .portrait
}
//跳转的优先方向
override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .portrait
}
三、跳转
跳转记得用present的跳转方式self.present(VC, animated: true) {
}版权属于:胡东东博客
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
☟☟如文章有用,可点击一次下方广告支持一下☟☟
ios 旋转屏幕试图切换_iOS屏幕横竖屏切换相关推荐
- 三星手机拍照旋转问题 调用相机拍照出现横竖屏切换?
三星手机拍照旋转问题 调用相机 拍照出现横竖屏切换? 拍照获取图片时,当应用是竖屏时,在部分手机上,如:三星note3上,图片不能正常显示,会旋转90°. =_= 大概的思路就是拍照后获取图片旋转的角 ...
- android横竖屏切换函数,Android横竖屏切换小结.PDF
Android横竖屏切换小结 Android横竖屏切换小结 Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是 有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换 ...
- android中的横竖屏切换,Android中横竖屏切换时Activity的生命周期
Android中横竖屏切换时Activity的生命周期执行情况 1.默认情况下生命周期 (1)第一次进入界面 11-17 13:55:18.452: E/ImageListActivity(10586 ...
- android 横竖切换快捷键,Android横竖屏切换总结
Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定 ...
- 手机横竖屏相关设置:动态 关闭横竖屏切换、指定横竖屏切换
方式一:通过重力感应开关来关闭/开启横竖屏切换 关闭横竖屏切换:Settings.System.putInt(context.getContentResolver(), Settings.System ...
- android横竖屏切换方法,Android横竖屏切换的生命周期
关于Android手机横竖屏切换时Activity的生命周期问题,网上有很多相似的文章,大多数都是说明在竖屏切换横屏时Activity会重启一次,而在横屏切换竖屏时Activity会重启两次. 我本身 ...
- android 重力感应 横竖屏切换,重力感应 横竖屏切换
1,去掉StatusBar 在info.plist添加UIStatusBarHidden设置Boolean,设置为YES. 2,横屏 继续在info.list中添加UIInterfaceOrienta ...
- webview 禁用横竖屏切换_Android 禁止横竖屏切换
MainActivity里面的代码: public void onConfigurationChanged(Configuration newConfig) { try { super.onConfi ...
- 【小技巧】Android SDK模拟器 增加手机内存RAM和ROM 横竖屏切换 AVD安装路
http://apps.hi.baidu.com/share/detail/34577170 新版的SDK越来越方便使用,摆脱了命令行的输入,不过命令有时解决大问题 问题一 手机内存大小扩展 RAM手 ...
最新文章
- 5中div标签有没有url属性_[网页编程]-03 CSS 常用属性
- Oracle 11g必须开启的服务及服务详细介绍
- python 批量改名
- 学习org-mode
- 为什么使用mq?具体的使用场景是什么?
- LeetCode 69 X的平方根
- unity 删除服务器项目,在吗?有个支持批量构建项目的好东西推荐给你
- 成为优秀的Java程序员要具备哪些技能?
- Hive 之 导入导出数据
- Mac使用终端压缩加密文件
- MYSQL 调优和使用必读
- hibernate理解
- Oracle监听注册和sqlnet,Oracle监听配置(四)--如何实现静态、动态注册
- 美国52.2%网民每月至少登录一次Facebook
- pro-engineerUG
- 家庭智能网络防盗及远程实时监控系统
- 产业分析:视频云服务行业
- sqlserver数据库的使用
- 世界黄金价格走势,十大香港国际黄金交易平台排行榜
- 修改服务器上tomcat的默认端口号
热门文章
- [No000061]别人凭什么要帮你?理解中国人的人际和谐外人、自己人与另一半...
- Putty远程(SSH)连接VPS
- Jackson公司蛋白质电印迹方法确认蛋白质转移
- PDV,PVV,IPG
- HTML下拉列表选择方法
- html放射性背景怎么做,5分钟用Ai做放射性背景
- matlab列向量创建,matlab创建列向量
- 原型工具摹客-轮播图制作
- 从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)
- 39、count_rpkm_fpkm_TPM