一尘不染

使用Swift在一个ViewController中强制横向模式

swift

我试图在横向模式下仅强制应用程序中的一个视图,

override func shouldAutorotate() -> Bool {
    print("shouldAutorotate")
    return false
}

override func supportedInterfaceOrientations() -> Int {
    print("supportedInterfaceOrientations")
    return Int(UIInterfaceOrientationMask.LandscapeLeft.rawValue)
}

override func preferredInterfaceOrientationForPresentation() -> UIInterfaceOrientation {
    return UIInterfaceOrientation.LandscapeLeft
}

该视图以纵向模式启动,并且在更改设备方向时保持旋转。
从不调用shouldAutorotate。
任何帮助,将不胜感激。


阅读 282

收藏
2020-07-07

共1个答案

一尘不染

它对其他人可能有用,我找到了一种强制视图以横向模式启动的方法:

把它放在viewDidLoad()中:

let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")

和,

override var shouldAutorotate: Bool {
    return true
}
2020-07-07