获取iPhone的物理屏幕尺寸(英寸)

Sar*_*aya 5 iphone screen screen-size ios

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

我通过检测iPhone/iPad模型找到了一种方法,但硬编码不是我想要的,所以我不是那样的.

MCK*_*pur 5

我发现了一个名为'GBDeviceInfo'的好GitHub项目:

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
}
Run Code Online (Sandbox Code Playgroud)

这是' GBDeviceInfo


Jac*_*ill 5

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

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));
Run Code Online (Sandbox Code Playgroud)

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

  • Nope iOS设备的屏幕种类繁多,具有不同的PPI计数:132、264、326和401。据我所知,您无法从使用SDK的设备获得PPI。我看到的唯一选择是用适当的PPI映射每个单独的设备名称。 (2认同)

Hit*_*wal 5

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)
Run Code Online (Sandbox Code Playgroud)