第一次定向问题

时间:2018-11-27 11:53:08

标签: ios swift uiviewcontroller

当前我的设备处于 Landscape模式(在表上为 Flat ),并且我正在启动该应用程序,现在 LaunchScreen 页面显示为横向视图正确,但之后 LoginPage (下一个ViewController)错误地以纵向模式呈现(需要横向显示),直到旋转设备。第一次启动该应用程序时遇到了这个问题。我该怎么解决。

2 个答案:

答案 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
 }
}