如何在ipad mini上检测dpi?

时间:2012-11-01 13:33:39

标签: ios ipad ipad-mini

我有一个ipad应用程序,带有一些非常小的触摸点,在普通ipad的10英寸屏幕上几乎无法接受。我希望能够获得设备dpi,这样我就可以扩大mini的小元素的大小以及将来发布的任何mini。

2 个答案:

答案 0 :(得分:4)

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

<强> http://www.apple.com/ipad-mini/specs/

您无法以编程方式获取此内容,因此您需要在代码中存储为常量。

答案 1 :(得分:3)

您无法直接获得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;
}

它不具备未来性,因为以后可能会引入新的机器ID,但没有未来的防护方法 如果它是iPad mini使用163 dpi,否则请使用评论中的上述链接来计算iPhone和iPad的dpi。