1. ホーム
  2. ios

Swift を使って 1 つの ViewController でランドスケープモードを強制する

2023-08-26 18:27:03

質問

ランドスケープモードのアプリケーションで、1つのビューだけを強制的に表示させようとしています。 私は

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は一度も呼び出されません。

どんな助けでも感謝します。

どのように解決するのですか?

他の人の役に立つかもしれませんが、ビューを強制的にランドスケープ モードで起動させる方法を見つけました。

これをviewDidLoad()に書いてください。

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

とする。

override var shouldAutorotate: Bool {
    return true
}