为iOS8 ( ……iOS11、Swift 4 和 LaunchScreen.storyboard )创建启动屏.xib

8
我刚刚发现,在苹果应用商店中,要让你的应用程序描述显示为“此应用程序已针对 iPhone 6 和 iPhone 6 Plus 进行了优化。”,你需要使用一个启动 XIB 或故事板文件作为你的启动图像(根据[Apple][1]的规定)。
所以,我创建了一个新的启动屏幕XIB,但是由于我通常都是用代码完成所有操作而不使用界面生成器,所以现在有点不知所措了。我删除了插入的默认标签并将一个UIImageView放到视图中。现在我想知道:
1)告诉UIImageView调整为与其运行的任何屏幕大小相同。
2)如果一个3.5英寸的屏幕正在运行该应用程序,则告诉UIImageView选择ImageA,如果一个4英寸的屏幕正在运行该应用程序,则选择ImageB等等。
基本上,我只是试图让启动.xib模仿启动屏幕正常工作的方式。如果有人能提供一些帮助,将不胜感激!
5个回答

7

你有两个选择:

  1. 使用自动布局,并使图像视图具有全屏外观(与顶部,底部,左侧和右侧的距离均为0)。但是这会导致在某些屏幕尺寸下图像被裁剪,可能不是您想要的。因此,您可能需要考虑(2)

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


3
谢谢。只是提醒一下,在使用资源目录为LaunchScreen.xib中的UIImageView提供图像时,不要链接到“启动图像”图像集,那样行不通。只需使用普通的图像集即可。 - Ser Pounce
3
如果您在使用模拟器进行测试时发现,在资源目录中将5.5英寸和4.7英寸的图像设置为LaunchImage组可能不会造成任何变化。这是因为资源目录可以在构建之间被缓存。为确保干净运行,请在运行之前在模拟器菜单中选择“重置内容和设置...”并清理您的项目。 - applejack42
2
这也可以通过清理构建并从模拟器中删除应用程序来实现。 - Sebastian Borggrewe

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 storyboard”已经与新项目一起创建。打开它。
2)在视图上添加一个图像视图。
3)将上面保存的“闪屏纵向”图像设置为图像视图源。
4)将图像视图“内容模式”设置为“纵横比填充”。
5)为图像视图添加顶部、底部、尾部和导航到超级视图的4个约束。
这是为纵向模式应用程序闪屏完成的。
对于横向模式支持,请执行以下额外步骤。(您可以参考@Sakiboy在https://dev59.com/b18d5IYBdhLWcg3wxUjC#46089856中的完整答案)

6)点击第3步设置的Image视图源旁边的+按钮。

7)从现在显示的弹出窗口中,选择Regular作为宽度和高度选择器。这指定了一个新的适应性集,用于处于横向模式的iPad。将出现一个名为wR hR的新图像源字段。将'splash-landscape'图像添加到wR hR图像源字段中,以便故事板知道在横向模式下使用不同的图像。

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”。
2)在xib - >视图(主视图)中添加图像视图。
3)将闪屏图像设置为它(图像不应在资源文件中)。
4)将图像设置为“Aspect Fit”(如果需要)。
5)您还可以将“视图”(超级视图)背景颜色更改为与图像的背景颜色接近。
6)选择图像视图,从菜单中单击编辑器 - > pin - >底部空间到超级视图。
7)这将在“视图”(图像视图的超级视图)附近显示红色错误标记。
8)单击错误标记,您将看到大约两个自动布局错误。

9) 点击错误,您将找到一个菜单,其中包含自动修复布局错误。

10) 在修复错误后,您将发现总共有四个“约束条件”,其中包括父视图和图像之间的“垂直”和“水平”空间。

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

敬礼。


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

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

祝你好运! Erik


1
创建一个新文件。在用户界面下选择视图。接下来,您可以将其命名为xib LaunchScreen,并通过添加类似于“测试启动”的标签并运行应用程序来测试它。您应该会看到启动屏幕出现!

0

由于应用程序在显示时未启动,因此启动xib无法具有自定义类。 我最终做的是:

  1. 使用尺寸类别功能
  2. 创建3个UI图像(每个尺寸类别一个)
  3. 使用自动布局和适用于每个尺寸类别的约束条件

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接