我在我的 iOS 应用程序中使用 lauchscreen.storyboard 作为闪屏。我在故事板中添加了闪屏图像。当应用程序启动时,纵向启动画面正确显示。但是,当以横向模式打开应用程序时,启动画面的右侧和左侧都会出现蓝色。
我尝试通过添加变化来设置不同的闪屏图像。但是,此故事板仅拍摄任何一张肖像或风景图像。
让我知道如何在故事板中设置两张图像,一张用于纵向,一张用于横向,或者为纵向和横向设置启动屏幕的最佳实践。我在网上找不到任何解决方案,尽管这似乎是一个简单的问题。
为两个方向设置相同的启动图像:
LaunchScreen.storyboard
的主控制器视图并将所有边缘约束到超级视图(非安全区域)注意: 要更改引用 SafeArea 的约束,您可以在检查器上双击它并更改相应的项目。以下是一些截图供参考
设置应如下所示(您可以通过单击辅助编辑器启用右侧的预览并从
Automatic
切换到 Preview
):
根据方向设置不同的启动图像:
+
按钮regular width
和 compact height
您的设置应如下所示:
更新: iPad 怎么样?
不幸的是,出于几个原因,似乎(至少在 Xcode10.1 之前)无法像 iPad 一样自定义启动屏幕。主要的一点是 iPad
Regular x Regular
适合纵向和横向。另一个原因是您无法在 LaunchScreen.storyboard
中使用自定义类。因为如果可以的话,您可以子类化 UIImageView
并用类似这样的东西覆盖 traitCollection
(本质上将 iPad 视为 iPhone 尺寸类别):
override public var traitCollection: UITraitCollection {
if UIDevice.current.userInterfaceIdiom == .pad && UIDevice.current.orientation.isPortrait {
return UITraitCollection(traitsFrom:[UITraitCollection(horizontalSizeClass: .compact), UITraitCollection(verticalSizeClass: .regular)])
}
return super.traitCollection
}
顺便说一句,如果您想解决类似的问题,您仍然可以在应用程序的其余部分中为您的窗口/视图使用上述代码。
我知道这不是您在答案中寻找的内容,但恐怕(目前)您必须在
Assets
中使用静态图像来处理 iPad。