iOS开发中,有时候会用到横屏模式,比如视频播放,科学计算器等。下满开发者就讲下横屏模式的注意事项
- 屏幕方向info设置,建议只勾选竖屏就好了,不要勾选其他的,不然的话有些三方组件是强制竖屏的,会崩溃
- 在AppDelgate中允许屏幕旋转
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return .allButUpsideDown
}
- 布局常用的常量或者宏定义要动态获取,不然的话屏幕旋转会有延迟,获取到的宽高是不准确的
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) }
注意下,横屏是时候没有状态栏,状态栏获取到的高度为0
4. 屏幕旋转后有些布局需要调整的,可以监听旋转代理
// 添加监听
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)
}