Il existe plusieurs façons de vérifier si un appareil est un iPad. C'est ma façon préférée de vérifier si l'appareil est bien un iPad:
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
return YES; /* Device is iPad */
}
La façon dont je l'utilise
#define IDIOM UI_USER_INTERFACE_IDIOM()
#define IPAD UIUserInterfaceIdiomPad
if ( IDIOM == IPAD ) {
/* do something specifically for iPad. */
} else {
/* do something specifically for iPhone or iPod touch. */
}
Autres exemples
if ( [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] ) {
return YES; /* Device is iPad */
}
#define IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
if ( IPAD )
return YES;
Pour une solution Swift, consultez cette réponse: https://stackoverflow.com/a/27517536/2057171
UI_USER_INTERFACE_IDIOM()
est équivalent à([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone)
. Vous pourriez être mieux mise en cache quelque part le résultat:BOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) …
.if UIDevice.currentDevice().userInterfaceIdiom == .Pad
Dans Swift, vous pouvez utiliser les égalités suivantes pour déterminer le type d'appareil sur les applications universelles:
L'utilisation serait alors quelque chose comme:
la source
userInterfaceIdiom
: «Disponible dans iOS 3.2 et versions ultérieures». donc ça ne devrait pas être le problème..Phone
au lieu de.Pad
.Cela fait partie d'UIDevice à partir d'iOS 3.2, par exemple:
la source
Vous pouvez également utiliser ceci
la source
UI_USER_INTERFACE_IDIOM()
renvoie iPad uniquement si l'application est pour iPad ou Universal. Si c'est une application iPhone fonctionnant sur un iPad, ce ne sera pas le cas. Vous devriez donc plutôt vérifier le modèle.la source
Soyez prudent: si votre application cible uniquement les appareils iPhone, l'iPad fonctionnant avec le mode compatible iPhone renverra false pour la déclaration ci-dessous:
La bonne façon de détecter un appareil iPad physique est:
la source
J'ai trouvé qu'une solution ne fonctionnait pas pour moi dans le simulateur dans Xcode. Au lieu de cela, cela fonctionne:
ObjC
Rapide
Dans les «autres exemples» de Xcode, le modèle d'appareil revient en tant que «simulateur d'iPad», donc le réglage ci-dessus devrait trier cela.
la source
hasSuffix:@"iPad"
place deisEqualToString@"iPad"
... votre meilleur pari est de consigner le modèle d'appareil que le simulateur retourne et disparaît de là ...De nombreuses façons de le faire dans Swift :
Nous vérifions le modèle ci-dessous (nous ne pouvons faire qu'une recherche sensible à la casse ici):
Nous vérifions le modèle ci-dessous (nous pouvons faire une recherche sensible à la casse / insensible ici):
UIDevice.currentDevice().userInterfaceIdiom
ci-dessous renvoie uniquement l'iPad si l'application est pour iPad ou Universal. S'il s'agit d'une application iPhone exécutée sur un iPad, ce ne sera pas le cas. Vous devriez donc plutôt vérifier le modèle. :Cet extrait ci-dessous ne se compile pas si la classe n'hérite pas d'un
UIViewController
, sinon cela fonctionne très bien. IndépendammentUI_USER_INTERFACE_IDIOM()
ne retourne iPad que si l'application est pour iPad ou Universal. S'il s'agit d'une application iPhone exécutée sur un iPad, ce ne sera pas le cas. Vous devriez donc plutôt vérifier le modèle. :la source
*
*
la source
Beaucoup de réponses sont bonnes mais j'utilise comme ça dans swift 4
Créer une constante
Utilisez comme ça
Edit: Comme suggéré, Cœur crée simplement une extension sur UIDevice
la source
App
structure quand on peut faire de même avec uneUIDevice
extension?Vous pouvez vérifier le rangeOfString pour voir le mot iPad existe comme ceci.
la source
["I am not an iPad" rangeOfString:@"iPad"].location != NSNotFound
renvoie vrai.Encore une autre façon Swifty:
Usage:
la source
Dans Swift 4.2 et Xcode 10
Si vous souhaitez détecter un appareil spécifique
la source
Pourquoi si compliqué? C'est comme ça que je le fais ...
Swift 4:
De cette façon, vous pouvez simplement dire
if iPad {}
la source
Pour les dernières versions d'iOS, ajoutez simplement
UITraitCollection
:puis dans
UIViewController
juste vérifier:la source
la source