2012-09-13 5 views
25

Sto provando a modificare un'applicazione per funzionare con il nuovo schermo iPhone 5, 4". Ho aggiunto la nuova immagine di avvio, "[email protected]". Dopo che tutto sembrava buono. Parte centrale delle mie opinioni sta ridimensionando ok.La barra degli strumenti in basso per iPhone 5 (4 ") non risponde

Tuttavia, ho notato che in una vista in cui ho una barra degli strumenti in basso, i pulsanti sulla barra degli strumenti non rispondono. Sembra ok, ma i bottoni non fanno nulla. Lo stesso codice eseguito nel simulatore con schermo da 3.5" funziona bene.

Tutte le idee?

Questa vista è all'interno di un controller di navigazione. Si compone di una vista tabella e toolbar. TableView è impostato per ridimensionare l'altezza.

+0

Hai ispezionare le cornici della barra degli strumenti e la sua superview? Uno scenario in cui ciò accade è se la vista figlio si trova al di fuori dei limiti della sua superview contenitore. La vista figlio (o la barra degli strumenti nel tuo caso) viene ancora visualizzata perché la vista genitore non interrompe il contenuto al di fuori dei suoi limiti. Un modo semplice per ispezionare l'intera gerarchia consiste nel chiamare il metodo nascosto 'recursiveDescription' su una vista durante il debug come in' po [someParentView recursiveDescription] '. – Anurag

+0

Penso che sia quello che sta succedendo, ma non capisco perché. Cercando il tuo suggerimento, la dimensione sembra corretta fino a quando non arrivo a UIWindow dove dice 320x480. Tutto quanto segue ha 320x568. – David

+0

Grazie mille Anurag, il tuo commento mi ha portato a risolvere il mio problema simile. – lppier

risposta

72

ho avuto lo stesso problema e ho notato che il mio window.frame.size.height era ancora 480,0

risolto questo problema consentendo schermo intero al momento del lancio per il file MainWindow.xib:.

Passi:

  1. Aprire MainWindow.xib
  2. Selezionare il finestra elemento
  3. Aprire il Attributi
  4. Sotto Finestra sezione, abilitare Schermo intero al momento del lancio
+0

+1 Funziona come un incantesimo! Grazie! – Mike

+0

+1 Questo era anche il mio problema. Grazie! – hyperspasm

+0

Fantastico. Grazie, grazie. – David

0

Il mio progetto non stava usando MainWindow.xib. Ho aggiunto quanto segue per viewDidLoad in Visualizza controllori di tutti gli schermi:

self.view.frame = [UIScreen mainScreen].bounds; 
+0

non ha funzionato, capire come attivare il flag per la finestra principale in IB .. risolve il problema. – Gmu

1

ho il progetto ha MainWindow.xib allora si deve avere per impostare tutte le immagini della spruzzata al fine di compatibilità si app per iPhone 5 display.

4

ci sono due soluzioni a questo problema:

  1. Se si utilizza MainWindow attenersi alla seguente procedura:

    a. Seleziona MainWindow.xib b. Seleziona "Schermo intero all'avvio" dall'opzione Windows disponibile in Impostazioni Attributi.

  2. Se l'applicazione non contiene MainWindow, aggiungere semplicemente "Self.View.Frame = [UIScreen mainScreen] .bounds" in ViewDidLoad.

+0

La seconda opzione ha funzionato per me. Grazie mille. – paachi

0

aggiungere

self.window.frame = [UIScreen mainScreen].bounds; 

in questo metodo:

-(BOOL)application:(UIApplication *)application 
didFinishLaunchingWithOptions:(NSDictionary*)options 

nel file %your app name%AppDelegate.m