27

使用 Xcode 版本 9.0 (9A235),我正在尝试在请求的 2436 像素 × 1125 像素(横向)处添加 iPhoneX 的启动图像。目前我正在使用情节提要,它看起来像这样:

在此处输入图像描述

'launchimage' 是链接到图像集的图像视图:

在此处输入图像描述

图像集如下:

在此处输入图像描述

我获得 iPhoneX 大小图像的唯一位置是在 Launch Image 集中:

在此处输入图像描述

但是当我尝试在情节提要的图像视图中选择启动图像时,无法选择它:

在此处输入图像描述

有关如何为 iPhoneX 添加正确大小的启动图像或返回启动图像的任何帮助?我更喜欢正确尺寸的图像,而不是拉伸的图像。

更新:

我想解释一下为什么我希望图像每个像素的像素完全相同。按照https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/launch-screen/中的指南,我的启动图像是应用程序首页的静态版本。如果启动图像被拉伸,则从启动图像到首页的切换明显。哪种方式违背了指导方针的目标。Apple 建议使用故事板启动,但如果这样做,您似乎无法遵循他们的指导方针。典型的,真的。

4

8 回答 8

41

如果您使用了LaunchImage.launchimagefor Launch,则解决方案是(在 Xcdoe 9.0 中):

  1. 选择Assets.xcassets,右键单击中间窗格,选择App Icons & launch Images-> New iOS Launch Image。然后将旧图像移动到新图像,并为 iPhoneX LaunchImage.launchimage添加图像大小。1125×2436 px在此处输入图像描述 在此处输入图像描述

  2. 此外,您可以将以下 json 对象添加到旧项目Contents.json文件LaunchImage.launchimage夹中的文件中。一旦 Xcode 刷新,只需放入 1125×2436 像素的图像。如果您需要横向,您可以添加另一个与方向。

	{
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "2436h",
      "minimum-system-version" : "11.0",
      "orientation" : "portrait",
      "scale" : "3x"
    }

于 2017-10-20T06:18:38.947 回答
20

对于像我这样的 2018 年懒惰的开发者,他们的现有项目具有旧版本的launchimage(没有 iPhoneX 变体),这是我支持 iPhone X 的解决方案 - 这是你的捷径。

  1. 在 Xcode 中打开Assets.xcassets
  2. 右键单击您的 LanchImage,然后选择Show In Finder
  3. 打开Contents.json
  4. 将以下代码粘贴到“图像”数组中。
 {
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "2436h",
  "filename" : "ipxportrait.png",
  "minimum-system-version" : "11.0",
  "orientation" : "portrait",
  "scale" : "3x"
},
{
  "extent" : "full-screen",
  "idiom" : "iphone",
  "subtype" : "2436h",
  "filename" : "ipxlandscape.png",
  "minimum-system-version" : "11.0",
  "orientation" : "landscape",
  "scale" : "3x"
},

当然用适当的图像替换文件名。瞧!

于 2018-01-02T17:30:23.553 回答
16

如果我理解正确,您将故事板用作带有图像视图的启动屏幕,对吗?

如果是这样,在您的 Launch Screen 故事板中选择查看为 iPhone X:

在此处输入图像描述

然后添加您的图像视图,使其填充整个区域,如下所示:

在此处输入图像描述

并将其固定到常量为 0 的超级视图。在选择 iPhone X 的情况下执行此操作很重要,因为否则您可能会固定到您不希望的顶部布局指南,因为它会给您留下空白最佳。

您的约束应如下所示(固定到 Superview):

在此处输入图像描述

于 2017-09-18T12:12:45.463 回答
2

在纵向上,iPhone X 上的显示屏宽度与 iPhone 6、iPhone 7 和 iPhone 8 的 4.7" 显示屏的宽度相匹配。但是,iPhone X 上的显示屏比 4.7" 显示屏高 145pt,导致大约 20% 的额外垂直空间用于内容。

在此处输入图像描述

可能您的图像没问题,但请尝试清理(cmd + K)并重建项目。

如果它没有帮助,那么从 Xcode 中删除这个图像并通过将这些图像拖到 Xcode 中重新添加它。并重新构建它。它应该工作。

于 2017-09-13T07:52:41.607 回答
2

使用 Xcode 版本 9.1 (9B55),感谢上面的答案(尤其是 Stoull),但是我的经验略有不同。我最初的问题基本上是:“如何获得与第一个游戏场景的背景相匹配的启动图像(在故事板或 LaunchImage 中),而不会在所有分辨率上重新缩放?”

我已经解决了这个问题,它可以使用 LaunchImage。然而,也有并发症。

将 LaunchImage 添加到 Assets 文件夹,然后在项目设置中指定它:

在此处输入图像描述

然后你会期望这样做:

在此处输入图像描述

导致:

在此处输入图像描述

但是在 Build 上,您会收到警告:

在此处输入图像描述

所以你需要这个用于 LaunchImage:

在此处输入图像描述

导致:

在此处输入图像描述

并且没有警告.... LaunchImage 适用于所有 iPhone/iPad。

图像尺寸为:

iPhoneX(iPhone X 横向 iOS 11+):2436 x 1125

视网膜高清 5.5"(iPhone 横向 iOS 8,9):2208 x 1242

2 倍(iPhone 纵向 iOS 7-9):640 x 960

Retina4 (iPhone Portrait iOS 7-9) : 640 x 1136

1x(iPad 横向 iOS 7-9):1024 x 768

2 倍(iPad 横向 iOS 7-9):2048 x 1536

该系统显然很混乱,需要Apple进行适当的改造。

于 2017-11-30T23:50:18.153 回答
1

您可以在图像集中保留较大尺寸的图像作为3x图像!我的意思1125px × 2436px是.3x375pt × 812pt

所以,在你的图像集中用图像大小替换旧3x图像,1125px × 2436px我认为你的启动屏幕(故事板或 xib)不会拉伸!

于 2017-09-13T13:20:13.090 回答
0

编辑:
我想强调,可以为 iPhone X 添加启动图像,但@Christian Cerri 要求在 LaunchScreen.storyboard 中专门为 iPhone X 添加正常图像到图像视图,这是不可能的。

原始答案:
不可能将专门用于 iPhone X 的图像添加到资产目录(因为它使用@3x),因此如果您想要另一个仅用于 iPhone X 的图像,您可能应该为此使用启动图像。

于 2017-09-19T10:24:14.150 回答
0

我从 xib 中删除了图像视图并清理了派生数据和构建。再次添加普通图像视图,然后在设置约束(前导、尾随、顶部、底部)到超级视图后设置图像。效果很好。

于 2018-08-30T10:42:51.377 回答