如何在 iOS 设备上调整图像大小?

How to size images on iOS devices?

我正在制作 spritekit 游戏。我了解如何在 SKScene 中调整我的图像大小,因为它在所有设备上都是 750x1334 点,但应用程序的主页使用 UIKit/a 集合视图控制器,所以我不确定如何调整我的图像大小。我想让图像占据屏幕宽度的 1/3,然后使图像高度等于图像宽度。

iPhone SE is 320x568 points

iPhone 7 is 375x667 points

iPad Pro 10.5 inch is 1112x834 points

我是否只制作最大可能设备宽度(1112 点)的 1/3 的图像,然后让较小的设备按比例缩小图像?即 1112 点除以 3 是 370 点,所以制作宽度和高度为 370 点的图像(740.6px@2x 和 1112px@3x)?

Storyboard中,您可以使用以下步骤,

  1. 在图像视图和您的实际视图之间设置等宽和等高
  2. Select equal width constraint 并将乘数从 1 to 1:3
  3. 更改为
  4. Select equal height constraint 并将乘数从 1 to 1:3
  5. 更改为
  6. 图像视图现在应该占据 1:3 的屏幕尺寸。

附上 iPhoneiPad 设计的屏幕截图,

希望对您有所帮助。

I want to have the images take up 1/3 of the screen width and then have the image height equal the image width. Do I just make images that are 1/3 of the largest possible device width (1112 points) and then let smaller devices scale the images down?

没有。当您 "let smaller devices scale the images down" 时,您仍在加载全尺寸图像,从而浪费内存。此外,让运行时自动缩小图像(例如,因为您使用具有纵横比适合或纵横比填充内容模式的图像视图)会浪费时间和处理能力,通常是在应用程序尝试启动的关键时刻。

正确的步骤是:

  • 在您的应用程序 bundle 中,您应该只包含 一个 大小的图像,可能有三种分辨率,这应该是您要显示的最大屏幕上可接受的最小尺寸。

  • 在您的 代码 中,您应该确定图像 实际 显示的大小我们 运行 所在设备的屏幕,并加载缩小到该尺寸的图像缩略图。

这样不会浪费内存;保存在内存中的图像就是显示的图像。