Различают пользовательский интерфейс между iPhone 4, iPhone 5 и iPad

Возможный дубликат:
Как определить iPhone 5 (широкоэкранные устройства)?

Мы можем различать iPad и iPhone, используя

UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone/UIUserInterfaceIdiomPad

Но как различить iPhone 4 и iPhone 5 в зависимости от пользователя

1 ответ

Решение

Цитирую этот пост:

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

Затем просто проверьте с помощью:

if( IS_IPHONE_5 )
{}
else
{}

Имейте в виду, вам не нужно определять это как макрос, если вы не хотите. Упрощенная версия:

if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
    if ([[UIScreen mainScreen] bounds].size.height == 568) {
        //5
    }else{
        //not 5
    }
}else{
    //iPad
}

И да, это работает в ландшафте. Хотя ориентация устройства изменилась, высота устройства остается неизменной. Получение высоты UIScreen отличается от получения высоты представления.

Другие вопросы по тегам