当前我的设备处于 Landscape模式(在表上为 Flat ),并且我正在启动该应用程序,现在 LaunchScreen 页面显示为横向视图正确,但之后 LoginPage (下一个ViewController)错误地以纵向模式呈现(需要横向显示),直到旋转设备。第一次启动该应用程序时遇到了这个问题。我该怎么解决。
答案 0 :(得分:0)
您可以使用以下命令在viewWillAppear中检查设备方向:
func isPotraitOrientation() -> Bool {
if UIDevice.current.orientation == UIDeviceOrientation.portrait ||
UIDevice.current.orientation == UIDeviceOrientation.portraitUpsideDown || UIDevice.current.orientation.isPortrait || UIDevice.current.orientation.isFlat {
return true
}
return false
}
此方法将识别设备方向是纵向还是横向。
因此,要以编程方式{3}迅速enter code here
更改方向,请使用以下方式:
let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")
您可以使用方向, 1.肖像2.肖像向上颠倒3.风景向左4.风景向右
您可以使用来检查“面向上”模式下设备的方向是纵向还是横向。
if UIDevice.current.orientation.isFlat { if UIInterfaceOrientationIsLandscape(self.preferredInterfaceOrientationForPresentation) {"Landscape mode"} }
答案 1 :(得分:0)
最后,我找到了解决问题的方法。
var isPortrait : Bool {
get {
let oriendation = UIDevice.current.orientation
var returnValue: Bool = true
switch oriendation {
case .portrait:
returnValue = true
case .landscapeLeft, .landscapeRight:
returnValue = false
default: // unknown or faceUp or faceDown orientations
return UIScreen.main.bounds.width < UIScreen.main.bounds.height
}
if returnValue {
print("*********** Portrait *************")
} else {
print("*********** Landscape *************")
}
return returnValue
}
}