我怎样才能在ipad mini上检测dpi?

我有一个ipad应用程序与一些非常小的触摸点,只是在正常的iPad的10英寸的屏幕上几乎不能接受。 我希望能够获得设备的dpi,所以我可以放大小型元素的大小,以及将来发布的任何迷你型号。

DPI是每英寸163像素(ppi):

http://www.apple.com/ipad-mini/specs/

你不能以编程方式得到这个,所以你需要在代码中存储一个常量。

您无法直接获得dpi(或更正确的ppi)值,因为您必须知道物理屏幕的毫米数(或英寸数)。
您首先必须检测它是否是iPad mini,然后将每个(但已知)设备的dpi值存储在您的应用程序中。

在写作的时候,这段代码检测到iPad mini:

#include <sys/utsname.h> NSString *machineName() { struct utsname systemInfo; if (uname(&systemInfo) < 0) { return nil; } else { return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; } } // detects iPad mini by machine id + (BOOL) isIpadMini { NSString *machName = machineName(); if (machName == nil) return NO; BOOL isMini = NO; if ( [machName isEqualToString:@"iPad2,5"] || [machName isEqualToString:@"iPad2,6"] || [machName isEqualToString:@"iPad2,7"]) { isMini = YES; } return isMini; } 

这不是一个未来的保障,因为以后可能会推出一个新的机器标识,但是没有前瞻性的方法。
如果是iPad mini,则使用163 dpi,否则使用评论中的上述链接计算iPhone和iPad的dpi。