UIImages在xcode中丢失尺寸并变大

时间:2017-03-24 05:57:34

标签: ios iphone swift xcode

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

它们的名称或多或少是image1.png,image2.png等等。 如果我检查PNG的尺寸,它们看起来就对我来说。

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

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

2 个答案:

答案 0 :(得分:0)

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

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

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

  1. 重命名所有图片,以便最后都有@ 2x.png。像这样:
    image1.png becomes image1@2x.png
    image2.png becomes image2@2x.png

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

  3. 现在,您可以通过调用其名称(最后省略@ 2x)将图像分配给按钮,背景和其他任何内容,如下所示:image1image2等分辨率现在适合。
    您还可以在故事板中的下拉列表中选择图像,以将它们应用于不同的元素(如所述按钮)。

  4. 第二种方式类似 您不要重命名图像,并将它们原样拖放到Assets.xcassets文件夹中。然后手动将图像的缩略图拖动到2x插槽中。这是一个名为'gear'的图像示例:
    enter image description here

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

答案 1 :(得分:0)

我认为你的内容模式不对。这是如何解决它:

enter image description here

  1. 点击你的UIImageView
  2. 查看右侧并选择View - > Content ModeAspect Fit
  3. 这是关于图像视图的content mode的文档 https://useyourloaf.com/blog/stretching-redrawing-and-positioning-with-contentmode/

    我希望它可以帮到你