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):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let result: Bool = NSString(string: deviceModel).containsString("iPad")
return result
}
Nous vérifions le modèle ci-dessous (nous pouvons faire une recherche sensible à la casse / insensible ici):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let deviceModelNumberOfCharacters: Int = count(deviceModel)
if deviceModel.rangeOfString("iPad",
options: NSStringCompareOptions.LiteralSearch,
range: Range<String.Index>(start: deviceModel.startIndex,
end: advance(deviceModel.startIndex, deviceModelNumberOfCharacters)),
locale: nil) != nil {
return true
} else {
return false
}
}
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. :
class func isUserUsingAnIpad() -> Bool {
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad {
return true
} else {
return false
}
}
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épendamment UI_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. :
class func isUserUsingAnIpad() -> Bool {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) {
return true
} else {
return false
}
}
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) …
.