网上流传的获取的当前设备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 132
iPad 4 9.7 2048x1536 264 4:3
iPad 3 9.7 2048x1536 264 4:3
iphone 3g 3.5 480x320 163
iPhone 5 4.0 1136x640 326 16:9
iPhone 4,4S 3.5 960x640 326 3:2
iPod Touch5 4.0 1136x640 326 16:9
iPod Touch4 3.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的乘积就是相应的分辨率值。