如何添加 iPhoneX 启动图像

How to Add iPhoneX Launch Image

使用 Xcode 版本 9.0 (9A235),我正在尝试按要求的 2436px × 1125px(横向)添加 iPhoneX 的启动图像。目前我正在使用故事板,它看起来像这样:

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

图片集如下:

我唯一获得 iPhoneX 尺寸图像的地方是启动图像集中:

但是当我尝试 select 在故事板上的图像视图中启动图像时,它无法 selected:

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

更新:

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

In portrait orientation, the width of the display on iPhone X matches the width of the 4.7" displays of iPhone 6, iPhone 7, and iPhone 8. The display on iPhone X, however, is 145pt taller than a 4.7" display, resulting in roughly 20% additional vertical space for content.

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

如果没有帮助,请将此图片从 Xcode 中删除,然后将这些图片拖到 Xcode 中重新添加。并重新构建它。它应该可以工作。

您可以在图片集中保留更大尺寸的图片作为 3x 图片!我的意思是 1125px × 2436px3x 375pt × 812pt 的分辨率。

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

如果我没理解错的话,您是在使用故事板作为带有图像视图的启动屏幕,对吗?

如果是这样,在你的 Launch Screen 情节提要中 select 以 iPhone X:

查看

然后添加图像视图,使其像这样填充整个区域:

并用常量 0 将其固定到超级视图。使用 iPhone X selected 执行此操作很重要,否则你可能会固定到顶部布局指南,而你不会不想,因为它会让你在顶部留下空白。

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

编辑:
我想强调的是,可以为 iPhone X 添加 Launch Image,但是@Christian Cerri 要求在 LaunchScreen.storyboard 的图像视图中添加 NORMAL 图像,专门用于 iPhone X,这是不可能。

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

如果您使用 LaunchImage.launchimage 启动,解决方案是(在 Xcdoe 9.0 中):

  1. Select Assets.xcassets,右键单击中间窗格,select App Icons & launch Images -> New iOS Launch Image。然后将旧的LaunchImage.launchimage图片移动到新的图片上,并为iPhoneX添加1125×2436 px的图片尺寸。

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

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

使用 Xcode 版本 9.1 (9B55),感谢上面的回答(尤其是 Stoull),但我的体验略有不同。我最初的问题基本上是:"How to get launch image (in storyboard or LaunchImage) which matches the bg of the first game scene without a rescaling blip on all resolutions?"

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

在Assets文件夹中添加一个LaunchImage,然后在项目设置中指定:

那么你会期望这样做:

导致:

但是在 Build 上你会收到警告:

所以您需要这个用于 LaunchImage:

导致:

并且没有警告....并且 LaunchImage 适用于所有 iPhones/iPads。

图像尺寸为:

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

Retina HD 5.5"(iPhone 横向 iOS 8,9):2208 x 1242

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

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

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

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

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

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

  1. 在您的 Xcode.
  2. 中打开 Assets.xcassets
  3. 右键单击您的 LanchImage,然后 select 在 Finder 中显示
  4. 打开Contents.json
  5. 将以下代码粘贴到您的 "images" 数组中。
 {
  "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"
},

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

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