Подтвердить что ты не робот

If (device == iPad), если (устройство == iPhone)

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

4b9b3361

Ответ 1

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.
}

Ответ 2

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

и

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

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

Ответ 3

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

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

    //Device is iPad
}

Ответ 4

В 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 }

Ответ 5

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

Ответ 6

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

CGRect usableSpace = [[UIScreen mainScreen] applicationFrame];

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

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

Ответ 7

если вы используете быстрый,

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

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