IOS 如何获取ppi

 2023-09-05 阅读 23 评论 0

摘要:2019独角兽企业重金招聘Python工程师标准>>> 屏幕尺寸等于分辨率吗?如果你说是,那我在问,iPadAir 和 iPadmini3 分辨率一样吗?那尺寸呢? OpenGL绘制地图要依据不同得ppi做适配,UIScreen 和UIDevice这两个类中并没有发现

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  屏幕尺寸等于分辨率吗?如果你说是,那我在问,iPadAir 和 iPadmini3 分辨率一样吗?那尺寸呢?

  OpenGL绘制地图要依据不同得ppi做适配,UIScreen 和UIDevice这两个类中并没有发现任何关于ppi接口的信息。   而计算公式又需要知道屏幕尺寸:


//    float w = [UIScreen mainScreen].bounds.size.width;//    float h = [UIScreen mainScreen].bounds.size.height;//    dpi = sqrt( w*w + h*h ) / 屏幕尺寸 ;


    记得当时在两个群里问如何获取屏幕尺寸的时候,被人一顿喷。ios开发连这个都不知道,甚是悲伤,咱只好掩面继续百度,google。

    在iPhone 6 出来之前iPhone和iPod的ppi都是326。

    iPad 的就比较特殊 iPadmini 是 163 *2 其他的是 132 * 2 乘2是代表是否为R屏;

   如果能区分是不是mimi就能解决问题,现在的问题就是变成如何获取ios设备硬件信息。继续换关键字百度,google;


if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {dpi = 163 * scale;} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {if (is iPad mimi) {dpi = 163 * scale;} else {dpi = 132 * scale;}} else {dpi = 163 * scale;}


  最后找到一段代码通过获取设备的硬件信息,和官网上得型号做匹对:


-  (NSString*) machine
{struct utsname systemInfo;uname(&systemInfo);    NSString* code = [NSString stringWithCString:systemInfo.machineencoding:NSUTF8StringEncoding];static NSDictionary* deviceNamesByCode = nil;if (!deviceNamesByCode) {deviceNamesByCode = @{@"i386"      :@"Simulator",@"iPod1,1"   :@"iPod Touch",@"iPod2,1"   :@"iPod Touch",@"iPod3,1"   :@"iPod Touch",@"iPod4,1"   :@"iPod Touch",@"iPhone1,1" :@"iPhone",@"iPhone1,2" :@"iPhone",@"iPhone2,1" :@"iPhone",@"iPad1,1"   :@"iPad",@"iPad2,1"   :@"iPad 2",@"iPad3,1"   :@"iPad",@"iPhone3,1" :@"iPhone 4",@"iPhone4,1" :@"iPhone 4S",@"iPhone5,1" :@"iPhone 5",@"iPhone5,2" :@"iPhone 5",@"iPad3,4"   :@"iPad",@"iPad2,5"   :@"iPad Mini",@"iPhone5,3" :@"iPhone 5c",@"iPhone5,4" :@"iPhone 5c",@"iPhone6,1" :@"iPhone 5s",@"iPhone6,2" :@"iPhone 5s",@"iPad4,1"   :@"iPad Air",@"iPad4,2"   :@"iPad Air",@"iPad2,5"   :@"iPad Mini",@"iPad2,6"   :@"iPad Mini" ,@"iPad2,7"   :@"iPad Mini",@"iPad4,4"   :@"iPad Mini",@"iPad4,5"   :@"iPad Mini" ,@"iPad4,6"   :@"iPad Mini",@"iPad4,7"   :@"iPad Mini",@"iPad4,8"   :@"iPad Mini",@"iPad4,9"   :@"iPad Mini",@"iPhone7,1" :@"iPhone 6 Plus",       // Phone 6 Plus@"iPhone7,2" :@"iPhone 6",       // Phone 6 Plus};}NSString* deviceName = [deviceNamesByCode objectForKey:code];return deviceName;
}

  




转载于:https://my.oschina.net/252072599/blog/375869

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/1567.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息