8

我刚刚发现,为了能够在应用商店中对您的应用进行描述,请说“此应用针对 iPhone 6 和 iPhone 6 Plus 进行了优化”。您需要为启动图像使用启动 XIB 或情节提要文件(根据 [Apple][1])。

所以,我创建了一个新的启动屏幕 xib,现在我有点,但因为我通常在代码中做所有事情并且不使用界面生成器。我已删除插入的默认标签并将 a 拖放UIImageView到视图中。现在我想知道我将如何:

1)告诉UIImageView调整大小到它所在的任何屏幕的大小

2) 如果 3.5 英寸的屏幕正在运行应用程序,则告诉 UIImageView 选择 ImageA,如果 4 英寸的屏幕正在运行应用程序,则选择 ImageB 等等。

本质上,我只是想让启动 .xib 模仿启动屏幕正常工作的行为。如果有人可以为此提供一些帮助,将不胜感激!

4

5 回答 5

7

你有两个选择:

  1. 您使用自动布局并为图像视图提供全屏外观(到顶部、底部、左侧和右侧的距离等于 0)。但是,这会导致某些屏幕尺寸的图像被剪裁,这是您可能不想要的。所以你可能要考虑 (2)

  2. 您将启动屏幕图像放入资产目录中,然后将不同的图像放入不同的大小类别中。

于 2014-11-04T12:53:18.353 回答
5

我发现答案很有用。

简而言之,为 iOS 8创建 LaunchScreen xib 的旧步骤低于步骤。

参考XCode 9、Swift 3 或 Swift 4 和 LaunchScreen.storyboard以下是新步骤。

第一步是在您最喜欢的图形软件中为纵向和横向模式启动画面(png 或 jpeg)创建两个图像。(如果您的应用只支持纵向模式,您可以跳过横向模式图像和设置。)

纵向模式图像:-

使用您自己的完整背景创建一个“splash-portrait”图像,大小为“宽 1125 x 高 2436”。请注意,背景将夹在各种尺寸的设备上。

无论您不希望被剪裁的信息、图形,都应在上图的中心以“宽 1125 x 高1471 ”的大小创建。这应该始终位于完整图像上方的中心。

横向模式图像:-

使用您自己的完整背景创建一个“splash-landscape”图像,大小为“宽 2436 x 高 1125”。请注意,背景将夹在各种尺寸的设备上。

无论您不希望被剪裁的任何信息、图形都应创建在上图的中心,大小为“宽860 x 高 1125”。这应该始终位于完整图像上方的中心。

两个图像都准备好后,您可以将其添加到 xcassets 或保留在资源中。

现在执行以下步骤。

1) “LaunchScreen 故事板”已经用新项目创建。打开它。

2)在视图上添加一个图像视图。

3)将上面保存的“splash-portrait”图像设置为图像视图源。

4) 将图像的图像视图“内容模式”设置为“纵横比填充”。

5)为Superview添加Top,Bottom,Trailing和Leading的4个Image View约束。

这是为纵向模式应用程序启动完成的。

对于横向模式支持,请执行以下额外步骤。(您可以在 https://stackoverflow.com/a/46089856/2641380 上参考@Sakiboy 的完整答案)

6) 单击您在步骤 3 中设置的图像视图源旁边的 + 按钮。

7) 从现在显示的弹出窗口中为宽度和高度选择器选择常规。这是为横向的 iPad 指定一个新的自适应集。将出现一个新的图像源字段,标题为 wR hR。将“splash-landscape”图像添加到 wR hR Image 源字段,以便情节提要在横向时知道使用不同的图像。

8) 现在我们需要在横向时添加对“iphone plus”设备的支持。因此,再次单击图像源字段旁边的 + 按钮。

9)这次选择紧凑的高度和常规的宽度选择器。这是为横向的“iPhone plus”设备指定一个新的自适应集。将出现一个新的图像源字段,标题为 wR hC。

10) 将“splash-landscape”图像添加到 wR hC Image 源字段,以便情节提要在“iPhone plus 设备”上处于横向时知道使用不同的图像。

由于 iPad 设备是“宽度和高度都正常”,我们将在 iPad 中看到纵向和横向模式的“splash-landscape”图像。'splash-landscape' 图像中可显示内容的宽度 860 将在纵向和横向模式下显示全部内容。

简而言之,为 iOS 8 创建 LaunchScreen xib 的旧步骤。

1)从新文件->用户界面->启动屏幕创建一个新的“LaunchScreen xib”(保持自动布局打开)。

2)在xib --> view(主视图)中添加一个图像视图。

3)为其设置启动图像(图像不应在资产文件中)。

4)将图像设置为“Aspect Fit”(如果需要)。

5)您还可以将“视图”(超级视图)背景颜色更改为接近图像的背景颜色。

6) 选择图像视图,从菜单-编辑器-图钉-底部空间点击超级视图。

7)这将在“视图”附近显示红色错误标记(图像视图的超级视图)。

8) 点击错误标记,您将看到大约两个自动布局错误。

9)点击错误你会发现菜单自动修复布局错误。

10)在修复错误时,您会发现总共四个“约束”,在超级视图和图像之间具有“垂直”和“水平”空间。

11) 现在您可以在不同的设备或模拟器中测试它们。

问候。

于 2015-03-11T09:19:24.583 回答
1

您可以通过将约束设置为超级视图的顶部、底部、前缘和后缘来调整图像大小。只需单击图像视图并选择编辑器->固定顶部上下文菜单。您还可以通过单击 UIImageView 并将其设置为例如“Aspect Fit”来设置 UIImageView 的各个方面。确保 ImageView 在设置约束之前覆盖整个屏幕,否则您将不得不修改约束。

要为不同的屏幕尺寸设置不同的图像,我猜你必须创建一个类并修改 viewWillAppear 方法以加载适当的图像

祝你好运!埃里克

于 2014-11-04T12:53:03.497 回答
0

创建一个新文件。在用户界面下选择查看。之后,您可以命名您的 xib LaunchScreen,您可以通过添加带有“测试启动”之类的标签来测试它并运行应用程序。您应该会看到启动屏幕出现!

于 2020-11-05T11:36:25.047 回答
0

Launch xib 不能有自定义类,因为您的应用在显示时没有启动。我最终做的是:

  1. 使用尺码分类功能
  2. 创建 3 个 UI 图像(每个尺寸等级一个)
  3. 使用具有适用于每个尺寸类别的约束的自动布局

因此,当您显示一种类型的设备时,其他两个 UIImageView 的宽度和高度约束设置为 0

于 2015-10-14T23:25:00.200 回答