簡體   English   中英

iOS禁用Landscape LaunchScreen.storyboard

[英]iOS Disabling Landscape LaunchScreen.storyboard

我有一個可以顯示徽標的LaunchScreen.storybaord (文本,因此與方向無關)。 該應用程序始終以縱向啟動,但是它具有允許橫向模式的某些視圖控制器(因此,不可以僅使應用程序為縱向)。

我想要的是啟動屏幕始終顯示為縱向。 因此,在應用啟動過程中將手機保持在橫向模式下應該會導致徽標旋轉(就像在查看不支持橫向模式的視圖控制器一樣)

有沒有辦法告訴情節提要只能是縱向的?

我嘗試使用大小類特征,但是這種方式只能解決左或右橫向問題。 由於還為首次用戶提供了一個啟動屏幕的徽標屏幕,因此徽標的旋轉取決於手機在橫向放置的方向。

有幾種方法可以實現此目的。 我的首選方法是在Info.plist中指定

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

並在AppDelegate內部啟動完應用程序后覆蓋它

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return [.allButUpsideDown]
}

來源: https : //developer.apple.com/library/archive/technotes/tn2244/_index.html#//apple_ref/doc/uid/DTS40009012-CH1-ALLOWING_YOUR_APP_TO_ROTATE_INTO_PORTRAIT_ORIENTATION_AFTER_LAUNCH

單擊項目導航器,然后單擊目標->選擇項目>單擊常規->部署信息,然后您將看到以下視圖

在此處輸入圖片說明

在此處檢查在項目創建過程中檢查的設備方向,並標記所需的方向。 它會工作。

要么

您可以在ViewDidLoad中使用以下代碼:

NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged), name:  Notification.Name("UIDeviceOrientationDidChangeNotification"), object: nil)

然后,創建一個如下所示的函數

@objc func orientationChanged() {

    if(UIDeviceOrientationIsLandscape(UIDevice.current.orientation)){

        print("landscape")
    }

    if(UIDeviceOrientationIsPortrait(UIDevice.current.orientation)){

        print("Portrait")
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM