6

如何以英寸为单位以编程方式获取屏幕尺寸(例如 iPhone 4、3.5 英寸)。

我通过检测 iPhone/iPad 型号找到了一种方法,但硬编码不是我想要的,所以我看起来不像那样。

4

4 回答 4

6

用于屏幕的 Swift 4 版本

    let scale = UIScreen.main.scale

    let ppi = scale * ((UIDevice.current.userInterfaceIdiom == .pad) ? 132 : 163);

    let width = UIScreen.main.bounds.size.width * scale
    let height = UIScreen.main.bounds.size.height * scale

    let horizontal = width / ppi, vertical = height / ppi;

    let diagonal = sqrt(pow(horizontal, 2) + pow(vertical, 2))
    let screenSize = String(format: "%0.1f", diagonal)
于 2018-01-30T14:55:20.030 回答
5

我找到了一个不错的 GitHub 项目,名为“GBDeviceInfo”:

if ([GBDeviceInfo deviceDetails].display == GBDeviceDisplayiPhone35Inch) {
    //3.5 inch iphone
}
else if ([GBDeviceInfo deviceDetails].display == GBDeviceDisplayiPhone4Inch) {
    //4 inch iphone
}
else if ([GBDeviceInfo deviceDetails].display == GBDeviceDisplayiPad) {
    //ipad
}

这是:GBDeviceInfo

于 2013-01-25T07:41:09.953 回答
4

这将找到设备的对角线屏幕尺寸:

float scale = [[UIScreen mainScreen] scale];

float ppi = scale * ((UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? 132 : 163);

float width = ([[UIScreen mainScreen] bounds].size.width * scale);
float height = ([[UIScreen mainScreen] bounds].size.height * scale);

float horizontal = width / ppi, vertical = height / ppi;

float diagonal = sqrt(pow(horizontal, 2) + pow(vertical, 2));

diagonal将包含屏幕的对角线大小(以英寸为单位)。

于 2013-01-25T08:27:34.590 回答
-1

我找到了这个库,它可以用来获取以英寸为单位的屏幕尺寸

https://github.com/detroit-labs/IRLSize

您可以按以下方式获得以英寸为单位的屏幕尺寸

let screenHeight = UIDevice.current.physicalScreenHeight
let screenWidth = UIDevice.current.physicalScreenWidth
于 2021-08-20T05:32:49.667 回答