首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lauchscreen.storyboard横向闪屏

问Lauchscreen.storyboard横向闪屏
EN

Stack Overflow用户
提问于 2019-02-04 12:15:39
回答 4查看 1.1K关注 0票数 5

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

我尝试通过添加变体来设置不同的闪屏图像。但是,这个故事板只接受任何一个肖像或风景图像。

让我知道如何在故事板中设置两个图像,一个用于肖像,一个用于横向,或者最佳实践是将闪屏设置为纵向和横向。我在网络上找不到任何解决这个问题的方法,尽管这似乎是一个简单的问题。

EN

回答 4

Stack Overflow用户

发布于 2019-02-06 21:04:43

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

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

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

​

​

​

​

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

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

​

​

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

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

​

​

为compact height和添加自定义项

​

​

您的设置应如下所示:

​

​

更新: iPad怎么样了?

不幸的是,似乎(至少在Xcode10.1之前)不可能以同样的方式为iPad定制启动屏幕,原因有两个。主要的一点是iPads对于纵向和横向都是Regular x Regular。另一个原因是您不能在LaunchScreen.storyboard中使用自定义类。因为如果可以,您可以子类化UIImageView并使用下面的代码覆盖traitCollection (本质上是将iPad视为iPhone大小类):

代码语言:javascript
复制
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。

票数 1
EN

Stack Overflow用户

发布于 2019-02-09 18:41:45

如何在故事板中设置两个图像?

iOS对你能看到的几乎所有东西都有sizeClass。您可以根据应用程序主窗口的大小(不仅仅是设备的方向)为任何需要的情况选择图像、颜色等

​

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

-接口构建器中的大小类

[

​

-工作示例:

​

​

票数 1
EN

Stack Overflow用户

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

​

​

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

​

​

在这里更新你的风景图片。

就我个人而言,我也推荐你使用AutoLayouts。

运行应用程序。

示例-结果-

​

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54510066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档