Domanda

Ho un app iPad che vorrei rendere universale, tuttavia questo sembra allarmante difficile. Ho cambiato le cose intorno in modo che io sostengo sia costruisce, ma quando si costruisce, ricevo un sacco di errori sull'utilizzo UIPopOvers. Here're mie domande:

  • Perché UI_USER_INTERFACE_IDIOM() si compila o la registrazione 3.1.3?
  • Posso avere condizionalmente variabili in una definizione di classe sulla base di UI_USER_INTERFACE_IDIOM()?
  • In caso contrario, dovrei fare due diversi controller di vista?

Grazie!

È stato utile?

Soluzione

Perché UI_USER_INTERFACE_IDIOM (non) compilare o registrarsi sulla 3.1.3?

La macro UI_USER_INTERFACE_IDIOM è solo a partire disponibile con 3.2. Stesse restrizioni per la proprietà userInterfaceIdiom di UIDevice . Questo significa che si può ottenere solo applicazione universale a cominciare SDK 3.2.

Posso condizionalmente ho variabili una definizione di classe sulla base di UI_USER_INTERFACE_IDIOM ()?

No. La macro UI_USER_INTERFACE_IDIOM è solo una scorciatoia runtime per ottenere il linguaggio dell'interfaccia utente corrente del dispositivo.

In caso contrario, dovrei fare due diversi vista controllori?

Se si dispone di molto diverso UI tra i due dispositivi, è più saggio di utilizzare due diversi controller di vista, e di creare quella giusta in fase di esecuzione (nel controllore dell'applicazione per esempio) utilizzando la macro UI_USER_INTERFACE_IDIOM.

Altri suggerimenti

ho avuto abbastanza buona fortuna con solo selezionando l'obiettivo poi di andare a Progetto-> Aggiornamento attuale obiettivo per iPad.

La mia app è piuttosto semplice, consiste principalmente di vista della tabella e visualizzazioni, ma vale la pena fare un backup e cercando ...

E sì, si devono presentare come un'applicazione 3.2 che può avere come bersaglio 3.1. *

Ci sono anche un sacco di altre cose che dovete fare: Assicurarsi che possa essere visualizzato in qualsiasi orientamento (fu rifiutato la prima volta per questo). Assicurarsi di avere tutte le nuove immagini create. devi avere 3 o 4 icone, invece di uno solo come un'applicazione per iPhone necessario. (Icona iPad, iPhone icona, piccola icona per riflettori, ecc). E, naturalmente, iPad dimensioni le immagini per l'archivio.

Un modo davvero piacevole che uso per verificare se si tratta di un iPad o iPhone è quello di verificare se il dispositivo può utilizzare un controller split view, dal momento che per il prossimo futuro nessun dispositivo con uno schermo piccolo come un iPhone sarà in grado di utilizzare il controller vista suddivisa. Ho appena creato una funzione per fare questo per me:

+(BOOL)isIpad{ return NSClassFromString(@"UISplitViewController") != nil; }

Poi ovunque nel mio app che voglio visualizzare qualcosa di diverso a seconda del dispositivo, ho solo fare un controllo per esso:

int width = 150;
if([NabAppDelegate isIpad]){
   width = 350;
} else {
   width = 150;
}
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(5,10,width,25)];

Questo è molto meglio di controllo contro la versione del sistema operativo, come ho visto alcuni suggeriscono.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top