【问题标题】:UIImages losing dimensions and getting bigger in xcodeUIImages失去尺寸并在xcode中变大
【发布时间】:2017-08-16 23:20:22
【问题描述】:

我正在使用xcodeSwift 开发一个非常简单的应用程序,该应用程序只能在iphone7 上运行。我的应用程序中有一堆UIImagesUIButtons with images,并且我收到了一堆PNG 可以在应用程序中使用。

它们或多或少被命名为 image1.png、image2.png 等等。 如果我检查 PNG 的尺寸,它们在我看来是正确的。

例如,一张背景图片具有以下尺寸:750 x 1335。 一旦我将此 PNG 添加到我的应用程序,并将其添加到情节提要中,图像看起来就很大。 我需要手动输入以下尺寸350 x 887(尺寸的一半),以使图像适合屏幕上的手机尺寸。

我不知道这里发生了什么!是我做错了什么还是导出的 PNG 有问题?

【问题讨论】:

  • 您的图片是如何命名的?您是否有 1x 和 2x 的单独版本,或者您是否只有名为 image1.png 和 image2.png 的图像?如果您有 1x、2x 和 3x 等不同的版本,图像将被命名为 image1.png、image1@2x.png 和 image1@3x.png 等。
  • 我只有一张图片,更像image1.png等等。
  • 可以显示代码你在哪里设置图像,尝试设置imageview属性scaletoaspectfit
  • 如果您可以发布一个屏幕截图来显示图像看起来如何巨大 - 它可能有助于确定是因为图像缩放太大还是因为您以原始尺寸添加它并且它太大了那个尺寸的屏幕...
  • 我没有使用代码,只是通过将 UIImage 拖放到故事板中来添加它们。

标签: ios iphone swift xcode


【解决方案1】:

iPhone 的物理屏幕分辨率很少按原样引用,而是以点数计算。在早期的 iPhone 上,1 点实际上是 1 像素。在现代 iPhone 上,1 点实际上代表 2x2 像素,有时是 3x3 像素(对于 Plus 型号)。为了使这一切正常工作,UI 元素(按钮等)的所有图形都以两种或三种分辨率提供:

  • 对于 1 点 = 1 像素的情况
    在这种情况下,图像名称不带有任何后缀 (image1.png)
  • 对于 1 点 = 2x2 像素的情况
    在这种情况下,图像名称以@2x (image1@2x.png) 为后缀
  • 对于 1 点 = 3x3 像素的情况
    在这种情况下,图像名称后缀为@3x (image1@3x.png)

您有两种管理方式。
首先是这样的

  1. 重命名所有图像,使它们的末尾都有@2x.png。像这样:
    image1.png becomes image1@2x.png
    image2.png becomes image2@2x.png

  2. 将所有这些图像拖到 XCode 中的 Assets.xcassets 文件夹中:

  3. 现在您可以通过调用其名称(省略末尾的 @2x)将图像分配给按钮、背景和几乎任何其他内容,例如:image1image2 等。分辨率现在适合。
    您还可以在 Storyboard 的下拉列表中选择图像,以将它们应用到不同的元素(如上述按钮)。

第二种方式类似
您无需重命名图像,只需将它们原样拖入Assets.xcassets 文件夹即可。然后您手动将图像的缩略图拖到 2x 插槽中。这是一个名为“gear”的图像的示例:

有关 iOS 设备的物理屏幕分辨率与其内部表示(以磅为单位)有何不同的更多信息,请参阅此便捷指南:https://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions

【讨论】:

    【解决方案2】:

    我认为你的内容模式不对。这是修复它的方法:

    1. 点击你的 UIImageView
    2. 查看右侧并选择View -> Content ModeAspect Fit

    这是关于 Image View 的content mode 的文档 https://useyourloaf.com/blog/stretching-redrawing-and-positioning-with-contentmode/

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2019-12-12
      • 1970-01-01
      • 2012-04-06
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多