2012-10-17 18 views
18

Cosa c'è di sbagliato con questo codice? Voglio essere in grado di verificare se il dispositivo corrente che l'utente sta usando è un iPad ma continua a darmi errori.Verifica se il dispositivo è iPad

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

probabilmente si desidera contrassegnare questo con più di un semplice ipad. – epascarello

+0

Forse lo stai chiamando troppo tardi? Stai caricando il tuo XIB manualmente? Ricordo di averlo fatto e ci sono riuscito. Ma immagino ci siano soluzioni migliori. –

+0

Grazie, lo farò! –

risposta

37

È possibile utilizzare

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
+6

Si noti che un valore UIUserInterfaceIdiomPhone non significa necessariamente che si è su un dispositivo iPhone, piuttosto che l'idioma dell'interfaccia corrisponde a quello di iPhone. Potresti essere su un iPad, eseguendo un'applicazione solo per iPhone in modalità 1x/2x. – magma

+2

In realtà è UI_USER_INTERFACE_IDIOM(). – rmaddy

+0

Hai ragione, grazie – Makleesh

8

è necessario cheack la condizione wheather dispositivo è iphone/ipad

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

Se si utilizza veloce, utilizzare questo

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

In Swift è possibile utilizzare: la funzione

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

/* L'UI_USER_INTERFACE_IDIOM() è previsto per l'utilizzo durante la distribuzione di una versione di iOS inferiore a 3,2. Se la prima versione di iPhone/iOS che verrà distribuita per la versione 3.2 o successiva, è possibile utilizzare direttamente [UIDevice userInterfaceIdiom]. */

Migliore utilizzo UIDevice.current.userInterfaceIdiom a meno che non si sta sostenendo super vecchio iOS.

casi possibili sono le seguenti:

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 
} 
Problemi correlati