Muitas maneiras de fazer isso no Swift :
Verificamos o modelo abaixo (só podemos fazer uma pesquisa que diferencia maiúsculas de minúsculas aqui):
class func isUserUsingAnIpad() -> Bool {
let deviceModel = UIDevice.currentDevice().model
let result: Bool = NSString(string: deviceModel).containsString("iPad")
return result
}
Verificamos o modelo abaixo (podemos fazer uma pesquisa sensível a maiúsculas / minúsculas aqui):
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
abaixo retorna o iPad apenas se o aplicativo for para iPad ou Universal. Se for um aplicativo para iPhone rodando em um iPad, não será. Então, você deve verificar o modelo. :
class func isUserUsingAnIpad() -> Bool {
if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad {
return true
} else {
return false
}
}
Este trecho abaixo não compila se a classe não herda de um UIViewController
, caso contrário, ele funciona muito bem. Independentemente, ele UI_USER_INTERFACE_IDIOM()
retorna o iPad apenas se o aplicativo for para iPad ou Universal. Se for um aplicativo para iPhone sendo executado em um iPad, não será. Então, você deve verificar o modelo. :
class func isUserUsingAnIpad() -> Bool {
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) {
return true
} else {
return false
}
}
UI_USER_INTERFACE_IDIOM()
é equivalente a([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone)
. Você pode ser melhor fora de cache a algum lugar resultado:BOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) …
.