if (устройство == iPad), if (устройство == iPhone) - PullRequest
29 голосов
/ 13 августа 2011

Итак, у меня есть универсальное приложение, и я устанавливаю размер содержимого UIScrollView. Очевидно, что размер контента будет отличаться на iPhone и iPad. Как установить определенный размер для iPad и другой размер для iPhone и iPod touch?

Ответы [ 7 ]

92 голосов
/ 13 августа 2011
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
     // The device is an iPad running iOS 3.2 or later.
}
else
{
     // The device is an iPhone or iPod touch.
}
14 голосов
/ 13 августа 2011
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

и

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

Макросы UI_USER_INTERFACE_IDIOM () также работают в старых версиях iOS, таких как iOS 3.0, без сбоев.

5 голосов
/ 18 декабря 2013

UI_USER_INTERFACE_IDIOM() - лучшее решение в вашем случае, поскольку ваше приложение универсально. Но если вы используете приложение для iPhone на iPad, то UI_USER_INTERFACE_IDIOM() вернет UIUserInterfaceIdiomPhone независимо от устройства. Для таких целей вы можете использовать свойство UIDevice.model:

if ([[UIDevice currentDevice].model rangeOfString:@"iPad"].location != NSNotFound) {

    //Device is iPad
}
3 голосов
/ 27 ноября 2016

В Swift 2.x вы можете использовать следующие равенства для определения типа устройства:

UIDevice.currentDevice().userInterfaceIdiom == .Phone

или

UIDevice.currentDevice().userInterfaceIdiom == .Pad

В Swift 3 для новых людей, приезжающих сюда.

if UIDevice.current.userInterfaceIdiom == .pad { \\ Available Idioms - .pad, .phone, .tv, .carPlay, .unspecified \\ Implement your awesome logic here }

2 голосов
/ 13 августа 2011

Класс UIDevice расскажет вам все, что вам нужно знать об устройстве.Например, свойство model сообщит вам модель устройства.Вы можете использовать это, чтобы определить, какое представление использовать для текущего устройства.

1 голос
/ 13 августа 2011

Используйте класс UIScreen для определения фрейма приложения.

CGRect usableSpace = [[UIScreen mainScreen] applicationFrame];

Возвращенный прямоугольник - это размер экрана минус строка состояния. Не используйте идиомы пользовательского интерфейса для определения доступного пространства, поскольку они не рассчитаны на будущее.

Кстати, UIViewController может изменять размеры представлений содержимого (включая представления с прокруткой) автоматически, а также предоставлять вам другие полезности, такие как автоповорот. Подумайте, если это уместно в вашей ситуации.

0 голосов
/ 06 апреля 2016

, если вы используете Swift,

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad)
    {
     // device is ipad
    }
    else
    {
     //device is  iPhone 
    }

Вы также можете проверить UIUSerInterfaceIdiom и выбрать устройство для UIUserInterfaceIdiom.Pad или UIUserInterfaceIdiom.Phone или UIUserInterfaceIdiom.TV или UIUserInterfaceIdiom.CarPlay

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...