2012-10-17 1 views
18

Was ist falsch an diesem Code? Ich möchte prüfen können, ob das aktuelle Gerät, das der Benutzer verwendet, ein iPad ist, aber es gibt mir immer wieder Fehler.Überprüfen, ob das Gerät iPad ist

if (UIUserInterfaceIdiom == UIUserInterfaceIdiomPad) 
{ 
    //do stuff 
} 
+0

Sie wahrscheinlich diese mit mehr markieren möchten als nur ipad. – epascarello

+0

Vielleicht rufst du es zu spät an? Laden Sie Ihr XIB manuell? Ich erinnere mich daran, dies zu tun und erfolgreich zu sein. Aber ich denke, es gibt bessere Lösungen. –

+0

Danke, ich werde das tun! –

Antwort

37

Sie

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
+6

Beachten Sie, dass ein UIUserInterfaceIdiomPhone-Wert nicht unbedingt bedeutet, dass Sie sich auf einem iPhone-Gerät befinden - vielmehr entspricht das Interface-Idiom dem iPhone. Sie sind möglicherweise auf einem iPad und führen eine iPhone-App nur im 1x/2x-Modus aus. – magma

+2

Eigentlich ist es UI_USER_INTERFACE_IDIOM(). – rmaddy

+0

Du hast recht Danke – Makleesh

8

müssen Sie den Zustand cheack wheather Gerät iphone/ipad

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
    { 
//do ur ipad logic 
}else 
{ 
//do ur iphone logic 
} 
3

Wenn Sie mit schnellen, benutzen Sie diese

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad) 
    { 
     // device is ipad 
    } 
    else 
    { 
     // device is iPhone 
    } 
verwenden können
3

In Swift können Sie:

if UIDevice.current.userInterfaceIdiom == .pad { 
1

/* Die UI_USER_INTERFACE_IDIOM() Funktion für die Verwendung zur Verfügung gestellt wird, wenn auf eine Version der iOS weniger als 3,2 einzusetzen. Wenn die früheste Version von iPhone/iOS, für die Sie bereitstellen, 3.2 oder höher ist, können Sie direkt - [UIDevice userInterfaceIdiom] verwenden. */

Bessere Nutzung UIDevice.current.userInterfaceIdiom es sei denn, Sie sind Super alten iOS unterstützen.

Mögliche Fälle sind wie folgt:

public enum UIUserInterfaceIdiom : Int { 
    case unspecified 

    @available(iOS 3.2, *) 
    case phone // iPhone and iPod touch style UI 

    @available(iOS 3.2, *) 
    case pad // iPad style UI 

    @available(iOS 9.0, *) 
    case tv // Apple TV style UI 

    @available(iOS 9.0, *) 
    case carPlay // CarPlay style UI 
}