我们可以为支持所有方向的应用程序锁定启动画面的方向吗?目前,当我在设备处于横向状态时启动应用程序时,启动画面看起来非常难看,而我只需要在纵向模式下使用它。
如果您想在单一方向使用启动屏幕故事板,请更改 info.plist 以仅指定该方向。
然后,如果您希望应用程序在启动屏幕情节提要完成后以不同的方向运行,只需将以下方法添加到您的应用程序委托(objective-c)中:
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
UIInterfaceOrientationMask theMaskToReturn = UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | "etcetera";
return theMaskToReturn;
}
然后为整个应用程序使用单个导航控制器(如果您对此单个导航控制器进行子类化,则它必须具有与上面相同的掩码以返回)。
然后在每个 VC 中您可以指定支持的方向。
请注意,如果您通过 MFMailComposer 或 ActivityVC 进行共享(两者均由 VC 中的
self
呈现),则返回的掩码必须包含允许的方向。
将启动屏幕锁定为纵向的唯一方法是将应用程序支持的方向单独设置为纵向。
基于@vishnu_146评论的答案:
info.plist
AppDelegate
中设置所需的方向(您可以为iPad和iPhone设置特定方向)func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
let orientations: UIInterfaceOrientationMask = UIDevice.current.userInterfaceIdiom == .pad ? .all : [.portrait, .landscape]
return orientations
}