我在我的iOS应用程序中使用lauchscreen.storyboard作为闪屏。我已经在故事板中添加了闪屏图像。app启动时,画像闪屏正确出现。但是,当在横向模式下打开应用程序时,闪屏的左右两侧都会出现蓝色。
我尝试通过添加变体来设置不同的闪屏图像。但是,这个故事板只接受任何一个肖像或风景图像。
让我知道如何在故事板中设置两个图像,一个用于肖像,一个用于横向,或者最佳实践是将闪屏设置为纵向和横向。我在网络上找不到任何解决这个问题的方法,尽管这似乎是一个简单的问题。
发布于 2019-02-06 21:04:43
为两个方向设置相同的启动图像的:
LaunchScreen.storyboard的主控制器视图,并将所有边缘约束到superview (非安全区域)注意:要更改引用SafeArea的约束,可以在检查器上双击该约束并更改相应的项。以下是一些可供参考的截图


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


根据方向设置不同的启动画面:
+按钮

为compact height和添加自定义项

您的设置应如下所示:

更新: iPad怎么样了?
不幸的是,似乎(至少在Xcode10.1之前)不可能以同样的方式为iPad定制启动屏幕,原因有两个。主要的一点是iPads对于纵向和横向都是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。
发布于 2019-02-09 18:41:45
如何在故事板中设置两个图像?
iOS对你能看到的几乎所有东西都有sizeClass。您可以根据应用程序主窗口的大小(不仅仅是设备的方向)为任何需要的情况选择图像、颜色等

这样更方便。因为可能设备处于横向模式,但它处于iPad♂️的分屏模式。因此,让操作系统决定什么是最适合大小的情况。
-接口构建器中的大小类
[


-工作示例:

发布于 2019-02-13 17:49:35

默认情况下,使用肖像,添加变化到您的图像的横向版本与这些选择。


在这里更新你的风景图片。
就我个人而言,我也推荐你使用AutoLayouts。
运行应用程序。
示例-结果-


https://stackoverflow.com/questions/54510066
复制相似问题