web-dev-qa-db-fra.com

Si (Device == iPad), if (périphérique == iPhone)

Donc, j'ai une application universelle et je confie la taille du contenu d'un UIScrollView. Évidemment, la taille du contenu va être différente sur les iPhones et les iPads. Comment puis-je définir une certaine taille pour les iPads et une autre taille pour les iPhones et les iPod touchées?

29
Peter Kazazes
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.
}
92
Peter Kazazes
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)

et

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

La macros ui_user_interface_idiom () fonctionne également sur les versions iOS plus anciennes telles que iOS 3.0 sans s'écraser.

14
JustSid

UI_USER_INTERFACE_IDIOM() est la meilleure solution dans votre cas puisque votre application est universelle. Mais si vous exécutez une application iPhone sur iPad que UI_USER_INTERFACE_IDIOM() retournera UIUserInterfaceIdiomPhone, quel que soit le périphérique. Pour de telles fins que cela, vous pouvez utiliser le UIDevice.model biens:

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

    //Device is iPad
}
5
Yunus Nedim Mehel

In Swift 2.x Vous pouvez utiliser les égalités suivantes pour déterminer le type de périphérique:

UIDevice.currentDevice().userInterfaceIdiom == .Phone

ou

UIDevice.currentDevice().userInterfaceIdiom == .Pad

In Swift 3 pour les nouvelles personnes qui arrivent ici.

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

3
Kunal Verma

La classe idevice vous indiquera tout ce que vous devez savoir sur l'appareil. La propriété modèle , par exemple, vous indiquera le modèle de l'appareil. Vous pouvez l'utiliser pour déterminer quelle vue utiliser pour le périphérique actuel.

2
csano

Utilisez la classe UIScreen pour déterminer le cadre de l'application.

CGRect usableSpace = [[UIScreen mainScreen] applicationFrame];

Le rectangle retourné est la taille de l'écran moins la barre d'état. N'utilisez pas les idiomes de l'interface utilisateur pour déterminer l'espace disponible car ils ne sont pas futurs.

Au fait, UIViewController peut redimensionner automatiquement les vues de contenu (y compris les vues de défilement), ainsi que de vous fournir d'autres goodies, telles que la rotation automatique. Considérez-le s'il est approprié dans votre situation.

1

si vous utilisez Swift,

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

Vous pouvez également vérifier l'uiuserinterfaceidiom et choisir l'appareil que vous souhaitez uIuserInterfaceidiom.pad ou uiuserinterfaceidiom.phone ou uiuserinterfaceidiom.tv ou uiuserinterfaceidiom.carplay.

0
Raja Reddy