苹果设备屏幕相关

来源:互联网 发布:淘宝看历史价格 编辑:程序博客网 时间:2024/04/20 09:27

网上流传的获取的当前设备dpi的方法:

    float scale = 1;    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {        scale = [[UIScreen mainScreen] scale];    }    float dpi = 0;    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {        dpi = 132 * scale;    } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {        dpi = 163 * scale;    } else {        dpi = 160 * scale;    }
在xcode下测试最新的ipad和iphone模拟器,scale都是1,由此得出的dpi大小就是163了,不准备。

在维基查到的各设备dpi:

设备         尺寸    分辨率       ppi     宽高比ipad 2      9.7     1024x768    132iPad 4      9.7     2048x1536264     4:3iPad 3      9.7     2048x1536264     4:3iphone 3g   3.5     480x320     163iPhone 54.0     1136x640326     16:9iPhone 4,4S3.5     960x640     326     3:2iPod Touch5 4.0     1136x640326     16:9iPod Touch43.5     960x640     326     3:2


根据设备屏幕分辨率辨别当前所用设备(自行添加需要判断的设备分辨率):

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)    {        CGSize result = [[UIScreen mainScreen] bounds].size;                if(result.height == 480.f)        {            return @"ViewController";        }        else        {            return @"ViewController-iPhone5";        }    }  

1、得到当前屏幕的尺寸:

CGRect rect_screen = [[UIScreen mainScreen] bounds];    CGSize size_screen = rect_screen.size;
 
2、获得scale:
CGFloat scale_screen = [UIScreen mainScreen].scale;

此时屏幕尺寸的宽高与scale的乘积就是相应的分辨率值。


原创粉丝点击