iOS横屏模式适配
iOS开发中,有时候会用到横屏模式,比如视频播放,科学计算器等。下满开发者就讲下横屏模式的注意事项
屏幕方向info设置,建议只勾选竖屏就好了,不要勾选其他的,不然的话有些三方组件是强制竖屏的,会崩溃
在AppDelgate中允许屏幕旋转
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return .allButUpsideDown
}
1
2
3
布局常用的常量或者宏定义要动态获取,不然的话屏幕旋转会有延迟,获取到的宽高是不准确的
var kScreenHeight:CGFloat { return UIScreen.main.bounds.height }
var kScreenWidth:CGFloat { return UIScreen.main.bounds.width }
var kStatusBarHeight: CGFloat { return UIApplication.shared.statusBarFrame.size.height }
var kNavBarHeight: CGFloat { return (kStatusBarHeight + 44) }
1
2
3
4
注意下,横屏是时候没有状态栏,状态栏获取到的高度为0
- 屏幕旋转后有些布局需要调整的,可以监听旋转代理
// 添加监听
UIDevice.current.beginGeneratingDeviceOrientationNotifications()
NotificationCenter.default.addObserver(self, selector: #selector(deviceChange), name: UIDevice.orientationDidChangeNotification, object: nil)
//事件
@objc func deviceChange() {
let device = UIDevice.current
if device.orientation == .portrait {
}
//记得释放
deinit {
NotificationCenter.default.removeObserver(self, name: UIDevice.orientationDidChangeNotification, object: nil)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
————————————————
版权声明:本文为CSDN博主「iOS_小磊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_30356665/article/details/123688788