我有一个显示徽标的LaunchScreen.storybaord
(文字,因此它与方向无关)。该应用程序始终以纵向方式启动,但它具有允许横向模式的某些视图控制器(因此仅使应用程序纵向不可用)。
我想要的是发布屏幕始终以纵向显示。因此,在应用程序启动期间将手机保持在横向状态会导致徽标旋转(就像查看不支持横向的视图控制器一样)
有没有办法告诉故事板只是肖像?
我尝试使用大小类特征,但这样我只能解决左或右视图。由于首次使用的用户屏幕还可以通过启动屏幕为徽标设置动画,因此徽标旋转取决于手机在横向放置的方向。
答案 0 :(得分:5)
有几种方法可以实现这一目标。我首选的是在Info.plist中指定
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
</array>
在应用程序在AppDelegate内部启动后重写此内容
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return [.allButUpsideDown]
}
答案 1 :(得分:0)
单击项目导航器,然后单击目标 - &gt;选择项目&gt;点击一般 - &gt;部署信息,然后您将看到以下视图
在此处检查您在项目创建期间检查的设备方向,并标记所需的方向。它会起作用。
或强>
您可以在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")
}
}