2012-09-13 11 views
6

Dzisiaj, wraz z zapowiedzią iPhone'a 5 i nowych iPodów, rozpoczynam prace nad optymalizacją mojej aplikacji, aby móc skorzystać z nowej, dodatkowej przestrzeni ekranu. Już dotarłem do punktu, w którym moja aplikacja nie jest już "letterboxed". Wiem, że jest wcześnie, ale czy ktoś wie, w jaki sposób mogę odróżnić nowe, wyższe urządzenia od starych?iOS 6 - Rozróżnianie iPhone'a 5 od innych urządzeń?

Idealnie byłoby coś takiego:

if (device is iPhone 5 or taller iPod touch) { 
    do stuff that is ideal for the taller screen 
} else { 
    do what I've been doing before for the smaller screen 
} 

Dzięki! Mam nadzieję, że wszyscy inni również cieszą się z tego, co Apple ogłosił dzisiaj!

+0

Z iOS6 wciąż pod NDA, kwestie takie jak ta nie może uzyskać odpowiedzi w ustawieniach publicznych. Proponuję odwiedzić fora deweloperów Apple. –

+0

Oh, ok. Ponieważ GM nie było, nie byłem pewien, czy to nadal trwa, ale dzięki. Pójdę od tej chwili na fora deweloperów z takimi rzeczami. – mhbdr

+0

@SlyRaskal - w rzeczywistości nie jest to specyficzne dla systemu iOS 6.0, więc jest to idealne pytanie tutaj. –

Odpowiedz

6

Na górze mojej głowy możesz użyć informacji o granicach dla UIScreen [UIScreen mainScreen].bounds i sprawdzić wysokość lub lepszy stosunek ekranu.

+0

Dam ci spróbować! Dzięki za odpowiedź! :) – mhbdr

12
- (BOOL)isTall 
{ 
    CGRect bounds = [[UIScreen mainScreen] bounds]; 
    CGFloat height = bounds.size.height; 
    CGFloat scale = [[UIScreen mainScreen] scale]; 

    return (([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) && ((height * scale) >= 1136)); 
} 
3

Dla tych, ekran nadal zwraca 480 zamiast 568, trzeba dodać nowe obrazy uruchamiania z nowym rozmiarem w karcie podsumowania ustawień aplikacji.

14
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
{ 
    CGSize result = [[UIScreen mainScreen] bounds].size; 
    if(result.height == 480) 
    { 
     // iPhone Classic 
    } 
    if(result.height == 568) 
    { 
     // iPhone 5 
    } 
} 

see this link for different type of checking

Powiązane problemy