iOS 禁用景观 LaunchScreen.storyboard
iOS Disabling Landscape LaunchScreen.storyboard
我有一个显示徽标的 LaunchScreen.storybaord
(文本,因此它与方向无关)。该应用程序始终以纵向模式启动,但它具有某些允许横向模式的视图控制器(因此无法将应用程序设为仅纵向模式)。
我想要的是启动屏幕始终以纵向显示。因此,在应用程序启动期间横向按住 phone 应该会导致看到徽标旋转(就像查看不支持横向的视图控制器一样)
有没有办法让故事板只显示肖像?
我尝试使用大小 类 特征,但这样我只能处理左或右横向。由于还有一个介绍屏幕供初次使用的用户从启动屏幕动画徽标,因此徽标旋转取决于 phone 横向放置的方向。
有几种方法可以实现这一点。不过,我更喜欢在 Info.plist
中指定
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
并在应用程序在 AppDelegate 中完成启动后覆盖它
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return [.allButUpsideDown]
}
单击项目导航器,然后单击目标 -> select 项目 > 单击常规 -> 部署信息然后您将看到下面的视图
在此处检查您在项目创建期间检查的设备方向并标记您想要的方向。它会起作用。
或
您可以在 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")
}
}
我有一个显示徽标的 LaunchScreen.storybaord
(文本,因此它与方向无关)。该应用程序始终以纵向模式启动,但它具有某些允许横向模式的视图控制器(因此无法将应用程序设为仅纵向模式)。
我想要的是启动屏幕始终以纵向显示。因此,在应用程序启动期间横向按住 phone 应该会导致看到徽标旋转(就像查看不支持横向的视图控制器一样)
有没有办法让故事板只显示肖像?
我尝试使用大小 类 特征,但这样我只能处理左或右横向。由于还有一个介绍屏幕供初次使用的用户从启动屏幕动画徽标,因此徽标旋转取决于 phone 横向放置的方向。
有几种方法可以实现这一点。不过,我更喜欢在 Info.plist
中指定<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
并在应用程序在 AppDelegate 中完成启动后覆盖它
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return [.allButUpsideDown]
}
单击项目导航器,然后单击目标 -> select 项目 > 单击常规 -> 部署信息然后您将看到下面的视图
在此处检查您在项目创建期间检查的设备方向并标记您想要的方向。它会起作用。
或
您可以在 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")
}
}