设备上的图像尺寸错误

时间:2018-02-28 22:20:01

标签: ios swift uiimageview

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

enter image description here 第二个图像以编程方式放置

pd.concat([df1,df2],join ='inner',axis=0).sum(level=[0,1])

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

1)应用imageView.contentMode = .scaleAspectFit后出现同样的问题 enter image description here 2)如果我替换此代码

// 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

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

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

2 个答案:

答案 0 :(得分:2)

设置图像模式方面适合

 imageView.contentMode = .scaleAspectFit

答案 1 :(得分:0)

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

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

来自UIKit文档:

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