2012-11-01 4 views
6

Mam aplikację na iPada z kilkoma dość małymi punktami dotyku, które są ledwo akceptowalne na 10-calowym ekranie normalnego iPada. Chciałbym móc uzyskać rozdzielczość urządzenia, dzięki czemu mogę skalować rozmiar małych elementów mini i innych przyszłych wydań mini.Jak mogę wykryć dpi na iPadzie mini?

+0

[Ta odpowiedź] (http://stackoverflow.com/a/7922666/759019) może pomóc. –

+0

możliwy duplikat [Get ppi na iPhone/iPad/iPod Touch w czasie wykonywania] (http://stackoverflow.com/questions/3860305/get-ppi-of-iphone-ipad-ipod-touch-at-runtime) –

+0

Brak z obu odpowiedzi obsługuje iPadMini – AlexWien

Odpowiedz

4

DPI jest 163 pikseli na cal (ppi):

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

nie można dostać to programowo, więc trzeba będzie przechowywać jako stałą w kodzie.

+0

Chce, aby programowo miał wartość programowania DPI. –

+4

Cóż, powodzenia, nie możesz. – borrrden

3

Nie można uzyskać wartości dpi (lub bardziej poprawnie ppi) bezpośrednio, ponieważ trzeba znać liczbę milimetrów (lub cale) fizycznego ekranu.
Najpierw musisz wykryć, czy jest to iPad mini, czy nie, a następnie zapisać wartość dpi dla każdego (jeszcze znanego) urządzenia w twojej aplikacji.

W momencie pisania tego kodu wykrywa 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; 
} 

to nie jest przyszłościowe, ponieważ nowe id maszyna może zostać wprowadzona później, ale nie ma metody przyszłościowe.
Jeśli jest to iPad mini, użyj 163 dpi, w przeciwnym razie użyj linku powyżej w komentarzu, aby obliczyć dpi dla iPhone'a i iPada.