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 № 1Musisz 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.