[英]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.