/ / Jak naprawić [ekran główny UIScreen] rozpoznający iPhone'a 5 jako iPhone'a 4 - iPhone, iOS, Uiscreen

Jak naprawić mój ekran [UIScreen mainscreen] rozpoznając iPhone 5 jako iPhone 4 - iphone, ios, uiscreen

Mam iPhone'a 5 i iPhone'a 4s, na których testuję projekt Xcode. Usunąłem moją aplikację na iPhonie 5 i ponownie ją zbudowałem, a teraz rozpoznaje ona iPhone'a 5 jako iPhone'a 4. Próbowałem obu

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
NSLog(@"screen size is %f", screenSize.height);
if (screenSize.height > 480.0f) {
return TRUE;
} else {
return FALSE;
}
}

i

#define IS_WIDESCREEN ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )
#define IS_IPHONE ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPhone" ] )
#define IS_IPOD   ( [ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPod touch" ] )
#define IS_IPHONE_5 ( IS_IPHONE && IS_WIDESCREEN )

Problem polega na tym, że w jakiś sposób [UIScreen mainScreen] bounds.size.height rozpoznaje wysokość mojego ekranu jako 480.00000, a nie 586. Czy ktoś napotkał ten błąd i jak go naprawić?

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz mieć Default-568h @ 2x.png w kodzie, aby rozpoznał odpowiednią wysokość ekranu, w przeciwnym razie zawsze będzie FALSE. Przypadkowo usunąłem ten obraz między kompilacjami, więc nigdy nie został poprawnie przetestowany.