Vedere una banda bianca in fondo allo schermo, mentre l'aggiunta di vista alla finestra, a livello di programmazione iPhone?

StackOverflow https://stackoverflow.com/questions/1458061

Domanda

Quando ho messo a punto un vista di un progetto in Xcode, il Mio punto di vista funziona bene.Ma quando io uso una finestra di progetto e creare una vista e di cercare di aggiunta di un sottoview alla finestra, mi dà una banda bianca in basso.Non ho mai affrontato questo problema, ma prima di affrontare il primo tempo.

È stato utile?

Soluzione

Probabilmente ciò che sta accadendo è che si sta aggiungendo una vista adeguatamente dimensionati per l'utilizzo di una barra di stato della finestra, la cui dimensione include la barra di stato.

Schermo dell'iPhone è 480px alta, e la top 20 dei allocati per il dispositivo della barra di stato (quella con la potenza del segnale WiFi indicatore, orologio, etc.).Normalmente, un punto di vista sarà dimensionato per il restante 460px della finestra, e se si sta sviluppando un view-based app, che fine che modello di applicazione fornisce già un 320x460 radice di vista che tutte le altre secondarie ottenere aggiunto.

Ma dal momento che si sta aggiungendo alla finestra, che spazia in tutti i 480px dello schermo, la mia ipotesi è che la tua vista è semplicemente 20px troppo breve.Prova a cambiare l'altezza di visualizzazione o impostazione y-offset.

Altri suggerimenti

si deve sempre impostare le Dimensioni di Visualizzazione da ottenere la risoluzione da UIScreen

UIView *controllersView = [myViewController view]; // get the view
[controllersView setFrame:[[UIScreen mainScreen]applicationFrame]]; // set the Framesize

Questo imposta automaticamente l'origine x=0 e y=20.Tenete a mente che si dovrebbe utilizzare questo metodo, invece di impostare manualmente l'origine y=20, perché la risoluzione dello schermo può cambiare come sarà il nuovo iPhone 4.

La cosa divertente è che anche Apple HelloWorld Esempio per l'iPhone ha ottenuto il 20 pixel bug senza impostare il punto di vista del Telaio correttamente.

Nel caso In cui qualcuno ha bisogno di sapere il codice per compensare l'origine sarebbe simile a questa:

CGRect frame = myController.view.frame;
frame.origin.y = 20.0;
myController.view.frame = frame;

Se si utilizza interface builder è possibile fare clic su visualizza, vai a attributo di ispezione e cambiare la barra di stato per nessuno.Quindi basta regolare l'altezza della vista nella dimensione di ispezione a 480.

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