@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var blockRotation = Bool()
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
if blockRotation {
return .allButUpsideDown //支持横竖屏旋转
// return .landscapeLeft //强制横屏时这里可保持一个方向
}
return .portrait
}
}
class NetPlayerController: BaseViewController {
//App信息
let App_Delegate = (UIApplication.shared.delegate) as! AppDelegate
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
App_Delegate.blockRotation = true
setNewOrientation(fullScreen: true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
App_Delegate.blockRotation = false
//判断退出时是否是横屏
if UIApplication.shared.statusBarOrientation.isLandscape {
//是横屏让变回竖屏
setNewOrientation(fullScreen: false)
}
}
//横竖屏
func setNewOrientation(fullScreen: Bool) {
if fullScreen { //横屏
let resetOrientationTargert = NSNumber(integerLiteral: UIInterfaceOrientation.unknown.rawValue)
UIDevice.current.setValue(resetOrientationTargert, forKey: "orientation")
let orientationTarget = NSNumber(integerLiteral: UIInterfaceOrientation.landscapeRight.rawValue)
UIDevice.current.setValue(orientationTarget, forKey: "orientation")
} else { //竖屏
let resetOrientationTargert = NSNumber(integerLiteral: UIInterfaceOrientation.unknown.rawValue)
UIDevice.current.setValue(resetOrientationTargert, forKey: "orientation")
let orientationTarget = NSNumber(integerLiteral: UIInterfaceOrientation.portrait.rawValue)
UIDevice.current.setValue(orientationTarget, forKey: "orientation")
}
}
}