iphoneiosscreenscreen-size

Getting the physical screen size in inches for iPhone


How can I get the screen size programmatically in inches(for example iPhone 4, 3.5 inches).

I found a way to do it by detecting the iPhone/iPad model but hard coding is not what I want so I am not looking something like that.


Solution

  • This will find the diagonal screen size of a device:

    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 will contain the diagonal size, in inches, of the screen.