我在我的iOS应用程序中使用lauchscreen.storyboard进行初始屏幕显示。我在情节提要中添加了初始屏幕图像。当应用程序正在洗衣服时,人像闪屏正确显示。但是,在横向模式下打开应用程序时,初始屏幕的左右两侧都会出现蓝色。
我尝试通过添加变体来设置其他初始屏幕图像。但是,此情节提要只能拍摄任何一张人像或风景图像。
让我知道如何在情节提要中设置两幅图像,一幅用于纵向,一幅用于横向,或最佳做法是为纵向和横向设置初始屏幕。尽管这似乎是一个简单的问题,但我在网络上找不到任何解决方案。
答案 0 :(得分:3)
如何在情节提要中设置两个图像?
iOS的sizeClass
几乎可以显示任何内容。您可以根据应用程序主窗口的大小(不仅取决于设备的方向),根据需要选择图像,颜色等
更方便。因为该设备可能处于横向模式,但位于iPad的拆分屏幕中。因此,让操作系统决定最适合大小情况的内容。
答案 1 :(得分:0)
为两个方向设置相同的启动图像:
LaunchScreen.storyboard
的主控制器视图中,并将所有边缘约束到 superview (不是安全区域)注意:要更改引用SafeArea的约束,您可以在检查器上双击它并更改相应的项目。这是一些屏幕截图供参考
设置应如下所示(您可以通过单击帮助编辑器并从Automatic
切换到Preview
来启用右侧的预览):
根据方向设置不同的启动图像:
+
按钮regular width
和compact height
添加自定义内容您的设置应如下所示:
更新: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)
答案 3 :(得分:0)