设备上的图像尺寸错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设备上的图像尺寸错误相关的知识,希望对你有一定的参考价值。

我正在制作ios应用并在photoshop中创建了两个图像。背景图像(pic1)2208x1242像素和第二图像(pic2)928x195像素大小。当我在横向模式下在设备上运行应用程序(iPhone 7 plus)时,第二张图像占据设备的近一半宽度。

qazxsw poi以编程方式放置的第二张图片

enter image description here

似乎图像在两个方向上都被拉伸。如何解决/避免这个问题?

1)应用imageView.contentMode = .scaleAspectFit之后的相同问题// Constraints imageView.heightAnchor.constraint(equalToConstant: 195).isActive = true imageView.widthAnchor.constraint(equalToConstant: 928).isActive = true imageView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true imageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true 2)如果我替换此代码

enter image description here

imageView.heightAnchor.constraint(equalToConstant: 195).isActive = true
 imageView.widthAnchor.constraint(equalToConstant: 928).isActive = true

然后一切正常,但我不明白为什么第一个版本的代码(imageView.heightAnchor和imageView.widthAnchor)不起作用?

答案

设置图像模式方面适合

imageView.frame = CGRect(x: 0, y: 0, width: 928, height: 195)
另一答案

我发现了导致这个问题的原因。

heightAnchor.constraint和widthAnchor.constraint使用点作为大小测量而不是像素,我的图像大小928x195以像素为单位。所以要修复问题,我只需要将@ 3x图像的图像大小除以3。

来自UIKit文档:

NSLayoutDimension - 使用流畅API创建基于大小的布局约束对象的工厂类。概述使用这些约束以使用“自动布局”以编程方式定义布局。所有尺寸均以POINTS测量。

以上是关于设备上的图像尺寸错误的主要内容,如果未能解决你的问题,请参考以下文章

背景图像/导航栏图像 iOS 的正确尺寸

壁纸不适合设备屏幕

如何在不下载 Java 的情况下获取网站图像的尺寸?

如何防止桌面网站上的图像在移动设备上加载?

如何在 Android 的滚动视图中放大/更改子图像视图尺寸以使图像全尺寸

如何更改以不同显示尺寸显示片段的方式?