不同屏幕的图像尺寸

Posted

技术标签:

【中文标题】不同屏幕的图像尺寸【英文标题】:Images sizes for different screen 【发布时间】:2018-12-19 14:38:21 【问题描述】:

我开发了 ios 应用程序,这是我的第一个应用程序。我有 2 个真实设备。 Iphone 5 和 Iphone 6 加号。

我创建了一个 UITable,在自定义单元格下,我正在显示小图像,让我们说 20 * 20 来表示某些内容,然后是其文本。

例如,我使用位置图标,然后将其位置写入字符串。并且两者都在一个单元格中水平对齐。

当我在模拟器 Iphone 8 上运行它时,它会显示图标和 屏幕设计符合预期。但是当我在我的两个设备上运行它时 没有向我显示图标它仅以文本形式显示位置 但是两个设备中都不存在位置图像。

所以我知道我做错了什么,所以我总结的问题是

我应该选择多大的尺寸作为按钮图标等图像/图标? 如何在项目中放置图片?我知道这就像在资产文件中拖放?但是没有办法吗? 我不知道如何制作图像,然后用@2x @3x 对它进行后缀,我需要从哪个尺寸开始,然后怎么做?

我在 youtube 上遵循了一个教程,但那是针对应用程序图标的,我的应用程序图标在每台设备上都可见,而且看起来不错。但我真的对我必须在应用程序中使用的其他图标感到困惑。以及它们的大小以及如何将它们放入项目中

请帮助我,并与我讨论它而不是页面链接,因为我已经阅读了太多关于它的内容,但仍然是个笨蛋。请帮帮我

【问题讨论】:

你能分享单元格限制吗 嗨,看起来你对图像的约束有问题。你能详细解释一下你是如何在单元格中添加图像的吗?如果你有限制,它们是什么?此外,如果您使用情节提要,您可以从视图底部的“查看为:”按钮更改屏幕尺寸。 不,没有约束问题,请告诉我如何将图像资源放在xcode的assets文件夹中 【参考方案1】:

以下是如何将图像添加到您的项目:

    Project Navigator 中,通过双击打开 Assets.xcassetsControl-点击AppIcon下方的空白区域,然后从弹出窗口中选择New Image Set。 将出现一个名为Image 的新资产。点击Image 并为其指定您要使用的名称(例如"house")。 将 2x 和 3x PNG 图像拖放到适当的位置。如果你的图像是屏幕上的20 x 20 点,那么你的2x 图像应该是40 x 40,你的3x 图像应该是60 x 60。您可以确保这些图像具有适当的细节,而不仅仅是按比例放大的低分辨率图像。 (有关 1x、2x 和 3x 图像的更多背景信息,请参阅 Xcode images explanation。 在您的代码中,您可以使用let image = UIImage(named: "house") 加载图像,iOS 将为您的设备选择合适的分辨率图像。 iPhone 5 将使用 2x 版本,iPhone 6 Plus 将使用 3x 版本。

【讨论】:

很好的解释,但是告诉我你说要这样设置图像,让 image = UIImage(named: "house") 和 Ios 会为我选择正确的图像,很好,告诉我是如果我从 IB 为 UIImage 选择图像,则相同。 IOS会这样做吗 第二,这是我所有的困惑,你说如果你的图像在屏幕上是 20 x 20 点,但告诉我如何决定,假设我有一个 UIImage,我想设置它在 UiLabel 的左侧。我应该为此选择什么初始尺寸?还假设我制作了 16*20 的图像(长度和宽度不相等),2x 将是 32 * 40 吗?? 在你的例子中,假设我有图像 20*20 并且它的名字是 house.png 。所以我必须将其命名为 house.png@2x ?后缀?? 1) 这也适用于在 IB 中为 UIImage 设置的图像。 2)弄清楚你的图像点大小取决于你。尝试不同的值,直到看起来正确。如果您的点大小由于较大手机上的自动布局而增加,我会在代码中打印以在 ViewController 的 viewDidLayoutSubviews 或 custonCell 的 layoutSubviews 中输出 UIImageView 的最终大小,并在模拟器中尝试所有不同大小的设备。使用您看到的图像的最大点大小作为 1x 尺寸。 3) 是的,如果您的 ImageView 是 16 x 20,那么您的 2x 图像将是 32 x 40,3x 将是 48 x 60 对。没有 4x。

以上是关于不同屏幕的图像尺寸的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 中将图像尺寸调整为不同的 iPhone 屏幕尺寸

不同屏幕的图像尺寸

如何从不同的屏幕尺寸响应离子图像?

调整图像大小而不损失不同屏幕尺寸的质量。最好的方法是啥?

屏幕尺寸分辨率问题

在 Android 上针对不同的屏幕尺寸和密度重用可绘制图像