【问题标题】:How to Add iPhoneX Launch Image如何添加 iPhoneX 启动图像
【发布时间】:2017-09-13 07:33:53
【问题描述】:

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

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

图像集如下:

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

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

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

更新:

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

【问题讨论】:

  • 输入完整的launchimage 并检查 iphone X 是否支持 3x
  • 请注意,您可能应该将 Content Mode 设置为“aspect fit”。
  • 您的问题并非特定于 iPhone X。您的“launchImage”资产(不要与正常的启动图像混淆)不适用于您的启动屏幕,因为几部不同尺寸的 iPhone 使用 2x 图像. iPhone 4、5、6、6s、7、7s 代表 3 种不同的屏幕尺寸,它们都使用 2x 图像。现在 iPhone 6+、6s+、7+、7s+ 和 iPhone X 现在代表 2 种不同的屏幕尺寸,它们都使用 3x 图像。
  • @maddy true,但正确的尺寸适用于所有 6 和 7 系列,这是可以接受的。你知道,我们试图正确地支持 X,但我们没有得到这样做的工具。这是关于什么的?
  • “Apple 建议使用故事板启动,但如果你这样做了,你似乎无法遵循他们的指导方针。” — 这根本不是真的。您只需在启动故事板中构建灵活、自适应的 UI,就像在任何其他故事板中一样。

标签: ios xcode iphone-x


【解决方案1】:

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

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

  2. 1234563如果您需要横向,您可以添加另一个与方向。

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

【讨论】:

  • 我已经阅读了大约 100 篇关于 iphone X 布局的帖子,这是解决我的问题的唯一答案
【解决方案2】:

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

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

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

【讨论】:

  • 采用这种方式,你提交应用到Appstore的时候有没有问题?
【解决方案3】:

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

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

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

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

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

【讨论】:

  • 感谢@jonaszmclaren,但这不是解决方案。 1)我想为 iPhoneX 指定一个 2436x1125 图像,为 iPhone 6/7/8/plus 指定一个 2208x1242 图像,为 iPad 指定一个 2048x1536 ......当然我可以让它在 X 上工作,但不是在所有东西上工作。 2)在图像视图中选择是指选择 LaunchImage 类型,而不是图像类型,并且清理/重新添加不能解决此问题(我提到它是因为在 LaunchImage 类型中您可以正确指定所有三个图像 - 但您不能添加到故事板)。
  • 您可以通过在资产目录中提供适当的图像来使用启动图像,或者使用 LaunchScreen.storyboard 构建您的“启动视图”。我不知道您为什么要在情节提要中选择启动图像?如果您将启动图像集添加到资产目录,则它不能被选为故事板中的图像,它会在启动期间被 iOS 使用。
  • 您屏幕上的最后一张图片是“启动图片”类型(看右上角),其他图片是“正常”图片。您可以在应用中使用普通图像,启动图像在启动时由系统使用。
  • 是的,明白了,但 LaunchImage 是唯一可以选择 X 和 6/7/8 以及 iPad 图像的地方......我想我会放弃这个愚蠢的故事板并使用 LaunchImage! !!谢谢
  • 如果您添加了一个解决方案,说明您不能支持具有精确非拉伸图像的启动屏幕情节提要的通用应用程序中的所有模型,我将其标记为正确 - 似乎是这种情况。
【解决方案4】:

在纵向时,iPhone X 上的显示屏宽度匹配 iPhone 6、iPhone 7 和 iPhone 8 的 4.7 英寸显示屏的宽度。 然而,iPhone X 上的显示屏比 4.7 英寸显示屏高 145pt, 为内容增加了大约 20% 的额外垂直空间。

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

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

【讨论】:

  • 是的,目前 iphoneX 模拟器显示的是一个加了黑框的图像。您没有解释如何将 2436x1125 图像添加到我的启动屏幕故事板。
  • 也想知道
【解决方案5】:

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

我已经解决了这个问题,它可以使用 LaunchImage。但是,也有一些并发症。

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

那么你会期望这样做:

导致:

但在构建时您会收到警告:

所以 LaunchImage 需要这个:

导致:

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

图片尺寸为:

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 进行适当的改造。

【讨论】:

    【解决方案6】:

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

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

    【讨论】:

    • 根据上面 maddy 的评论,3x 用于 2 种尺寸(iPhone Pluses @ 2208px × 1242px 和 iPhone X @ 2436px × 1125px),所以其中一个会被拉伸。
    【解决方案7】:

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

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

    【讨论】:

    • 哇哦!返回启动图像!
    • 对于其他阅读本文的人...我尝试使用 Launch Images 并不断收到警告“必须为 iOS 7 提供 Retina 4 图像”...但 LaunchImage 资产项中没有插槽,虽然有一个用于肖像的。我只想说,我暂时放弃了支持 iPhone X 的启动图像。
    • 这是不正确的,您可以使用如下 Stoul 回答中所述的资产目录。
    • 如果我正确理解 Stoull 的回答,他使用的是 Launch Image,对吗?所以我的回答说可以通过使用启动图像,但不是资产目录中的“正常”图像。
    • 为什么这个答案被否决了?我并没有说不可能为 iPhone X 添加 Launch Image(我实际上建议使用它),但不可能将 NORMAL 图像添加到专门为 iPhone X 的资产目录中。这就是@ChristianCerri 想要通过使用 Image 实现的目标在 LaunchScreen Storyboard 中查看
    【解决方案8】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-04
      • 2015-03-01
      • 2018-07-24
      • 2018-07-04
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多