iOS 根据设备屏幕尺寸从资产中获取图像的实际尺寸

iOS get actual size of image from Assets based on device screen size

我正在开发一个 iOS 应用程序,该应用程序使用许多图像作为图标。我已将图像添加到资产并从我的视图中访问它们。

我需要知道 运行 时屏幕上显示的图像的实际大小。当我像这样创建 UIImage 对象时:

let image = UIImage(named: "my_image")

然后访问它的大小,我总是得到 1x 大小 - 在所有具有不同屏幕大小的设备上 -。据我所知,iOS 在 运行 时根据屏幕尺寸加载适当的图像尺寸。

那么,我怎样才能获得将在屏幕上呈现的实际图像尺寸,而不是始终获得默认尺寸?

UIImage 的大小以磅为单位。要获得以像素为单位的实际大小,您可以将其乘以屏幕的比例 - 视网膜显示屏为 2.0 或 3.0 - 就像这样

let scale = UIScreen.main.scale
let sizeInPixels = CGSize(width: imageSize.width * scale, height: imageSize.height * scale)