Lauchscreen.storyboard 横向启动画面

Ram*_*esh 5 splash-screen storyboard ios

我在我的 iOS 应用程序中使用 lauchscreen.storyboard 作为启动画面。我在故事板中添加了闪屏图像。当应用程序启动时,纵向启动画面正确出现。但是,在横向模式下打开应用程序时,启动画面的左右两侧都会出现蓝色。

我尝试通过添加变化来设置不同的闪屏图像。但是,这个故事板只拍摄任何一张纵向或横向图像。

让我知道如何在情节提要中设置两张图像,一张用于纵向,一张用于横向,或者最佳做法是为纵向和横向设置启动画面。我在网上找不到任何解决方案,尽管这似乎是一个简单的问题。

All*_*ian 1

为两个方向设置相同的启动图像:

  1. 将图像添加到您的LaunchScreen.storyboard主控制器视图并将所有边缘限制为超级视图(非安全区域)

注意:要更改引用 SafeArea 的约束,您可以在检查器上双击它并更改相应的项目。以下是一些截图供参考

在此输入图像描述

在此输入图像描述

  1. 将图像的内容模式设置为适当缩放的模式(例如缩放到填充或纵横比填充)

Automatic设置应如下所示(您可以通过单击辅助编辑器并从 切换到 来启用右侧的预览Preview):

在此输入图像描述 在此输入图像描述


根据方向设置不同的启动图像:

  1. 单击+图像旁边的按钮

在此输入图像描述

  1. regular width添加&的自定义compact height

在此输入图像描述

您的设置应该如下所示:

在此输入图像描述


更新: iPad 怎么样?

不幸的是,由于几个原因,似乎(至少在 Xcode10.1 之前)无法像 iPad 一样自定义启动屏幕。主要的一点是 iPadRegular 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
} 
Run Code Online (Sandbox Code Playgroud)

顺便说一句,如果您想解决类似的问题,您仍然可以在应用程序的其余部分中为您的窗口/视图使用上述代码。

我知道这不是您在答案中寻找的内容,但恐怕(目前)您必须在Assets处理 iPad 时使用静态图像。