iOS设备实际尺寸以英寸为单位
我看了很多关于iOS的post,如何检索真实的大小。 我发现这样的解决scheme,但我认为它不适用于所有设备。
+(float) getRealSize { float scale = 1; if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { scale = [[UIScreen mainScreen] scale]; } float dpi; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { dpi = 132 * scale; } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { dpi = 163 * scale; } else { dpi = 160 * scale; } CGRect originalFrame = [[UIScreen mainScreen] bounds]; float w = originalFrame.size.width; float h = originalFrame.size.height; return dpi * sqrtf(w*w + h*h); }
如何更新这种方法来支持所有设备? 我想要DPI(PPI)或英寸。 或者,可能有,有任何图书馆来帮忙。
为防止closures已发布:在计算器中没有适当的解决scheme。 例如, iOS以编程方式获取物理屏幕大小? 为iPhone获取物理屏幕尺寸英寸 如何获取iOS中的屏幕宽度和高度? 等等,等等…现在没有解决办法。
iOS中没有任何API来获得这个。 使用这个,并确保有新设备时更新: https : //github.com/lmirosevic/GBDeviceInfo
我不认为这将是一个AppStore的问题,但也许不包括越狱吊舱。
此外,你可以复制信息: https : //github.com/lmirosevic/GBDeviceInfo/blob/master/GBDeviceInfo/GBDeviceInfo_iOS.m – 这只是一个关于设备的信息列表 – 没有什么疯狂的
我的问题和@ lou-franco的答案的结果代码:
//method -(float) getRealSize { float scale = 1.f; if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { scale = [[UIScreen mainScreen] scale]; } float ppi = [GBDeviceInfo deviceInfo].displayInfo.pixelsPerInch; if (ppi == 0) { ppi = 160.f; } CGRect originalFrame = [[UIScreen mainScreen] bounds]; float w = originalFrame.size.width; float h = originalFrame.size.height; return sqrtf(w*w + h*h) * scale / ppi; } //usage: float inches = [self getRealSize];
- 使用MonoTouch,HttpClient和Charles Proxy时出现HTTPstream量监控问题
- 新的使用XCode仪器来解释iPhone开发的内存警告,需要指导
- CoreData基础知识(Xcode 9 + Swift 4)
- 观看操作系统2.0testing版:访问心脏跳动率
- 如何使用OpenGL ES将变形应用于UIImage?
- 如何沿圆形路径为UIView设置动画?
- iOS 8.3打破自动细胞高度
- 点击多个imageview内的scrollview不滚动事件,只有第一个imageview轻拍手势工作?
- 我如何只允许从我的iOS应用程序访问我的MySQL数据库? (使用webapp作为数据库的网关)