iOS禁用横向启动屏幕.故事板

dkqlctbz  于 2023-06-25  发布在  iOS
关注(0)|答案(3)|浏览(136)

我有一个LaunchScreen.storybaord,显示一个徽标(文本,所以它是方向不可知的)。该应用程序总是以纵向启动,但它有某些视图控制器允许横向模式(因此仅使应用程序纵向不是一个选项)。
我想要的是,启动屏幕总是以肖像出现。因此,在应用程序启动时,将手机置于横向位置,应该会看到徽标旋转(就像在查看不支持横向的视图控制器一样)
有没有办法告诉故事板只能是肖像?
我试着使用大小类特征,但这样我只能解决左或右景观。由于也有一个介绍屏幕为首次用户从启动屏幕动画标志,标志旋转取决于哪个方向的手机被放在横向。

7gs2gvoe

7gs2gvoe1#

有几种方法可以实现这一点。我更喜欢的方法是在Info.plist中指定

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

并在App完成在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

b1payxdu

b1payxdu2#

除了Sunil响应之外,还需要从“Build Settings”中删除该值。

q7solyqu

q7solyqu3#

点击项目导航器,然后点击目标->选择项目>点击一般->部署信息,然后你会看到下面的视图

在这里检查您在项目创建过程中检查的设备方向,并标记您想要的方向。会成功的

您可以在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")
    }

}

相关问题