Es gibt verschiedene Möglichkeiten, um zu überprüfen, ob es sich bei einem Gerät um ein iPad handelt. Dies ist meine bevorzugte Methode, um zu überprüfen, ob das Gerät tatsächlich ein iPad ist:
if ( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
return YES; /* Device is iPad */
}
So wie ich es benutze
#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. */
}
Andere Beispiele
if ( [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] ) {
return YES; /* Device is iPad */
}
#define IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
if ( IPAD )
return YES;
Eine Swift-Lösung finden Sie in dieser Antwort: https://stackoverflow.com/a/27517536/2057171
UI_USER_INTERFACE_IDIOM()
ist äquivalent zu([[UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] ? [[UIDevice currentDevice] userInterfaceIdiom] : UIUserInterfaceIdiomPhone)
. Möglicherweise ist es besser, das Ergebnis irgendwo zwischenzuspeichern :BOOL iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad; … if (iPad) …
.if UIDevice.currentDevice().userInterfaceIdiom == .Pad
In Swift können Sie die folgenden Gleichungen verwenden, um die Art des Geräts in Universal Apps zu bestimmen :
Die Verwendung wäre dann so etwas wie:
quelle
userInterfaceIdiom
es: "Verfügbar in iOS 3.2 und höher." Das sollte also nicht das Problem sein..Phone
statt zurückkehren.Pad
.Dies ist Teil von UIDevice ab iOS 3.2, z.
quelle
Sie können dies auch verwenden
quelle
UI_USER_INTERFACE_IDIOM()
Gibt das iPad nur zurück, wenn die App für das iPad oder Universal ist. Wenn es sich um eine iPhone-App handelt, die auf einem iPad ausgeführt wird, wird dies nicht der Fall sein. Sie sollten stattdessen das Modell überprüfen.quelle
Seien Sie vorsichtig: Wenn Ihre App nur auf iPhone-Geräte abzielt, gibt das iPad, das mit dem iPhone-kompatiblen Modus ausgeführt wird, für die folgende Aussage false zurück:
Der richtige Weg, um ein physisches iPad-Gerät zu erkennen, ist:
quelle
Ich habe festgestellt, dass eine Lösung im Simulator von Xcode für mich nicht funktioniert hat. Stattdessen funktioniert dies:
ObjC
Schnell
Auch in den 'Anderen Beispielen' in Xcode wird das Gerätemodell als 'iPad Simulator' zurückgegeben, sodass die obige Optimierung dies klären sollte.
quelle
hasSuffix:@"iPad"
anstelle vonisEqualToString@"iPad"
... verwenden könnten, ist es am besten, das Gerätemodell zu protokollieren, das der Simulator zurückgibt und loslegt von dort ...Viele Möglichkeiten, dies in Swift zu tun :
Wir überprüfen das folgende Modell (wir können hier nur zwischen Groß- und Kleinschreibung suchen):
Wir überprüfen das folgende Modell (wir können hier eine Suche ohne Berücksichtigung der Groß- / Kleinschreibung durchführen):
UIDevice.currentDevice().userInterfaceIdiom
unten gibt iPad nur zurück, wenn die App für iPad oder Universal ist. Wenn es sich um eine iPhone-App handelt, die auf einem iPad ausgeführt wird, wird dies nicht der Fall sein. Sie sollten stattdessen das Modell überprüfen. ::Dieses Snippet unten wird nicht kompiliert, wenn die Klasse kein erbt
UIViewController
, andernfalls funktioniert es einwandfrei. Unabhängig davonUI_USER_INTERFACE_IDIOM()
gibt iPad nur zurück, wenn die App für iPad oder Universal ist. Wenn es sich um eine iPhone-App handelt, die auf einem iPad ausgeführt wird, wird dies nicht der Fall sein. Sie sollten stattdessen das Modell überprüfen. ::quelle
* *
* *
quelle
Viele Antworten sind gut, aber ich benutze so in Swift 4
Konstante erstellen
Verwenden Sie so
Bearbeiten: Wie vorgeschlagen Cœur einfach eine Erweiterung auf UIDevice erstellen
quelle
App
Struktur beschäftigen, wenn Sie dasselbe mit einerUIDevice
Erweiterung tun können ?Sie können den rangeOfString überprüfen, um festzustellen, ob das Wort iPad so existiert.
quelle
["I am not an iPad" rangeOfString:@"iPad"].location != NSNotFound
gibt true zurück.Noch ein schneller Weg:
Verwendung:
quelle
In Swift 4.2 und Xcode 10
Wenn Sie ein bestimmtes Gerät erkennen möchten
quelle
Warum so kompliziert? So mache ich das ...
Swift 4:
Auf diese Weise kann man einfach sagen
if iPad {}
quelle
Für die neuesten Versionen von iOS fügen Sie einfach Folgendes hinzu
UITraitCollection
:und dann innerhalb von
UIViewController
nur überprüfen:quelle
quelle