2013-06-22 12 views
5

Nello storyboard, ho uno UIImageView che vorrei posizionare a una distanza fissa sotto una barra di navigazione traslucida. Ho la barra superiore simulata per il controller di visualizzazione impostato sulla barra traslucida e il vincolo che ho ora dice "Top Space to Superview Equals 52", 8 punti sotto la barra.Autolayout iOS - Posizione corretta sotto la barra di navigazione traslucida

Tuttavia, quando la vista ruota verso il paesaggio, la barra di navigazione si riduce a 34 punti e la vista dell'immagine è ancora a 52 punti come se fosse in verticale.

Quale vincolo posso utilizzare in IB per posizionare la vista dell'immagine a 8 punti sotto la barra di navigazione, indipendentemente dalla altezza della barra?

Grazie!

risposta

0

Selezionare sia imageView che TopBar in StoryBoard. In basso a destra dello schermo, vedrete un pulsante che assomiglia a un H:

enter image description here

selezionarlo e scegliere "Spaziatura verticale". Imposta il contraint uguale a 8 pixel e dovrebbe funzionare.

+0

Grazie. Non riesco a selezionare la barra in alto, forse perché sono solo metriche simulate? Non ho effettivamente aggiunto un elemento della barra di navigazione alla vista. – architectpianist

+0

Dovresti farlo a livello di codice, so che sembra un problema, ma se usi VLF non è difficile. – Andrea

+1

La domanda dice "in IB". – Nestor

2

Selezionare il numero UIImageView e trascinare il controllo sulla Guida al layout principale per creare un vincolo. Se non si ha familiarità con la Guida al layout principale, è possibile selezionarla nella vista struttura a sinistra.

0

Come indicato da Nestore, si imposta la spaziatura superiore con il bordo superiore della vista e non il vicino più prossimo che è la barra di navigazione. È necessario impostare il vincolo di spaziatura superiore con la Guida al layout principale per renderlo corretto indipendentemente dalla classe di dimensioni e dagli orientamenti.

Per fare ciò, dalla vista struttura del documento, tenere premuto ctrl clic e trascinare una linea da UIImageView a Top Layout Guide e selezionare Vertical Spacing dall'elenco.

enter image description here

Problemi correlati