2015-09-16 5 views
11

Ho 5 elementi nella parte superiore del mio controller di visualizzazione e sto provando a distanziarli uniformemente con l'autolayout. Per l'elemento di sinistra (pulsante Indietro), ho aggiunto un vincolo a 15px dal bordo sinistro e, per l'elemento giusto (fotocamera), ho aggiunto un vincolo a 15px dal bordo destro. Quindi, ho impostato l'elemento centrale (0:01) per allineare il centro x in modo che sia nel mezzo. Infine, ho selezionato "Ripristina i vincoli suggeriti" per ... e l'elemento flash.Centrare un elemento tra altri due elementi in esecuzione automatica (iOS)

Dopo averlo guardato negli iPhone 5 e 4, sembra fantastico. Come potete vedere, tutti gli articoli sono equamente divisi:
enter image description here

Finora tutto procede senza intoppi. Tuttavia, quando ho test sul iPhone6 ​​e iPhone6 ​​+, il "..." e il simbolo del flash non è centrato tra il < ed il 00:01, come illustrato: enter image description here

Come si fa a centrare un elemento tra due oggetti vicini? Aka, come centrare il "..." per essere esattamente tra il < e 0:01 ?? Questo semplice compito mi richiede ore e non capisco perché Xcode non abbia un centro tra due vicini.

Qualsiasi aiuto sarebbe molto apprezzato!

risposta

18

L'unico modo in cui ho capito come fare questo è creare un contenitore che contiene la cosa che si desidera centrare tra i due elementi. Quel contenitore dovrebbe avere gli stessi importi finali e finali e quindi centrare semplicemente la "cosa" in quel contenitore.

Nell'esempio seguente, la casella blu rappresenterebbe l'arancione "..." e la casella grigio scuro rappresenterebbe il contenitore utilizzato per il centraggio. Una volta che il layout funziona, basta impostare il contenitore per avere un riempimento chiaro.

enter image description here

+0

Impressionante. Lo proverò. Spero che Apple trovi un modo più semplice per scoprirlo nel prossimo futuro. –

+0

Ha funzionato meravigliosamente. –

+0

Dai un'occhiata a [questa domanda] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view) per soluzioni più generali (ad es. Per spaziatura 'n' views). – ahmacleod

0

solo aggiungere: se si utilizza UIImageView come contenitore, allora è già trasparente in quanto non popolarlo con un'immagine. Inoltre, le maniglie superiore e inferiore sono facili da posizionare

+0

sì, ma consiglio di utilizzare una vista come contenitore come pratica standard. –