为iOS8创建Launch Screen.xib(... iOS11,Swift 4和LaunchScreen.storyboard)

问题描述 投票:7回答:4

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

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

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

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

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

swift3 ios8 storyboard interface-builder ios11
4个回答
6
投票

您有两种选择:

  1. 您可以使用autolayout并为imageview提供全屏外观(距离顶部,底部,左侧和右侧等于0)。但是,这会导致某些屏幕尺寸的图像被剪裁,这可能是您不想要的。所以你可能要考虑(2)
  2. 将启动屏幕图像放入资产目录中,然后将不同的图像放入不同的大小类中。

5
投票

我发现答案很有用。

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

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

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

时尚肖像图片: -

使用您自己的完整背景创建“splash-portrait”图像,大小为“width 1125 x height 2436”。请注意,背景将剪辑各种尺寸的设备。

任何信息,图形,你不希望被剪裁应该在上面的图像中心创建“宽度1125 x高度1471”的大小。这应始终位于上方完整图像的中心。

风景模式图像: -

使用您自己的完整背景创建“splash-landscape”图像,大小为“width 2436 x height 1125”。请注意,背景将剪辑各种尺寸的设备。

无论是哪种信息,图形,您都不希望被裁剪,应在上方图像的中心创建“宽度860 x高度1125”的尺寸。这应始终位于上方完整图像的中心。

一旦两个图像准备就绪,您可以将其添加到xcassets或保留在资源中。

现在进行以下步骤。

1)已经使用新项目创建了“LaunchScreen storyboard”。打开它。

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

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

4)将图像的图像视图“内容模式”设置为“Aspect Fill”。

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

这是为肖像模式应用程序启动完成的。

对于横向模式支持,请执行以下额外步骤。 ( you may refer full answer by @Sakiboy at https://stackoverflow.com/a/46089856/2641380 )

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

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

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

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

10)将“splash-landscape”图像添加到wR hC图像源字段,以便故事板知道在“iPhone plus设备”中使用横向时使用不同的图像。

由于iPad设备是“常规的宽度和高度”,我们将在iPad上看到“splash-landscape”图像,用于纵向和横向模式。 “splash-landscape”图像中可显示内容的宽度860将以纵向和横向模式显示完整内容。

简称为iOS 8创建LaunchScreen xib的旧步骤。

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

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

3)设置启动图像(图像不应该在资源文件中)。

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

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

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

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

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

9)点击错误,你会找到菜单,自动修复布局错误。

10)在修复错误时,你会发现总共四个“约束”,在superview和image之间有“垂直”和“水平”空间。

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

问候。


1
投票

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

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

祝好运!埃里克


0
投票

Launch xib无法自定义类,因为您的应用程序在显示时未启动。我最终做的是:

  1. 使用大小类功能
  2. 创建3个UI图像(每个大小类一个)
  3. 使用适用于每个大小调整类的约束的自动布局

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

© www.soinside.com 2019 - 2024. All rights reserved.