Lauchscreen.storyboard横向启动画面

时间:2019-02-04 04:15:39

标签: ios storyboard splash-screen

我在我的iOS应用程序中使用lauchscreen.storyboard进行初始屏幕显示。我在情节提要中添加了初始屏幕图像。当应用程序正在洗衣服时,人像闪屏正确显示。但是,在横向模式下打开应用程序时,初始屏幕的左右两侧都会出现蓝色。

我尝试通过添加变体来设置其他初始屏幕图像。但是,此情节提要只能拍摄任何一张人像或风景图像。

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

4 个答案:

答案 0 :(得分:3)

  

如何在情节提要中设置两个图像?

iOS的sizeClass几乎可以显示任何内容。您可以根据应用程序主窗口的大小(不仅取决于设备的方向),根据需要选择图像,颜色等

SizeClass

更方便。因为该设备可能处于横向模式,但位于iPad的拆分屏幕中。因此,让操作系统决定最适合大小情况的内容。

-接口构建器中的大小类

[{1[2] 2

-工作示例:

working example

答案 1 :(得分:0)

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

  1. 将图像添加到LaunchScreen.storyboard的主控制器视图中,并将所有边缘约束到 superview (不是安全区域)

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

enter image description here

enter image description here

  1. 将图像的内容模式设置为适当缩放的内容(例如,缩放以填充或宽高比填充)

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

enter image description here enter image description here


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

  1. 点击图片旁边的+按钮

enter image description here

  1. regular widthcompact height添加自定义内容

enter image description here

您的设置应如下所示:

enter image description here


更新:iPad怎么样?

不幸的是,出于两个原因,似乎(至少Xcode10.1以下)无法以相同的方式为iPad自定义启动屏幕。主要的原因是iPad的纵向和横向Regular x Regular均为LaunchScreen.storyboard。另一个原因是您不能在UIImageView中使用自定义类。因为如果可以的话,您可以将traitCollection子类化,并用类似这样的方法覆盖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 } (本质上会将iPad视为iPhone尺寸类):

Assets

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

我知道这不是您要寻找的答案,但恐怕(暂时),您必须在...中使用静态图像来处理iPad。

答案 2 :(得分:0)

充分利用Vary的特征,如离子屏幕截图所示。我已经尝试过并为我工作。

enter image description here enter image description here

答案 3 :(得分:0)

enter image description here

默认情况下,使用肖像,请通过这些选择将变化添加到横向版本的图像中。

enter image description here enter image description here

在此处更新您的风景照片。

我个人还建议您使用自动版式。

运行应用。

示例-结果-

Landscape Portrait