2009-05-27 5 views

risposta

31

Quando la fodera controlla e misura le loro distanze l'una dall'altra è spesso desiderabile pensare alle posizioni dei controlli in termini di spazio visivo che occupano sullo schermo, piuttosto che semplicemente i loro frame grezzi. In molti casi, il rettangolo visivo occupa un controllo e la sua cornice è molto diversa. Ad esempio, un pulsante di dimensioni regolari sembra essere alto circa 20 punti sullo schermo, con un'ombra esterna di 2 o 3 punti. In realtà, la cornice di un pulsante configurato correttamente è alta 32 punti, non ~ 23. Questo extra 9 punti di imbottitura non è visivamente evidente.

"Layout Rectangle" è il nome che Interface Builder utilizza per questo concetto.

Il rettangolo di layout è utile per le applicazioni di misurazione e dimensionamento. Le linee guida di Apple Human Interface potrebbero affermare che "Due pulsanti allineati verticalmente e orizzontalmente uno accanto all'altro dovrebbero avere 12 punti di spazio che li separano orizzontalmente". Questi 12 punti di spazio che separano i pulsanti dovrebbero essere misurati dai frame di layout del pulsante, non dai loro frame grezzi.

+0

Nel periodo tra la scrittura di questo commento e ora, AppKit e UIKit hanno entrambi adottato Auto Layout. Il concetto di layout automatico del rettangolo di allineamento è lo stesso concetto del rettangolo di layout in Interface Builder. –

+0

Quindi, come si imposta il rettangolo di allineamento quando si utilizza il layout automatico? C'è un modo per farlo in Interface Builder? Giocare con la cornice del layout non sembra fare molto per questo – Marchy

7

Molti elementi IB incorporati hanno un rettangolo "layout" o "bounds" separato. Puoi vedere la differenza mostrandoli usando "Layout> Mostra rettangoli XXX". Il menu a discesa indica a quale rettangolo si riferiscono le coordinate.

Su Mac, questo influisce sugli UITextField che sono etichette, ad esempio. Se passi da Layout a Frame, la coordinata X cambierà di 3 pixel. Non ho giocato con i controlli iPhone per vedere se ha effetto su nessuno di essi. Non viene molto.

+2

Bel suggerimento. Grazie, ma la voce di menu _Show (Bounds | Layout) Rectangles_ è ora in ** Editor> Canvas ** in Xcode 4.5.1. – Jeff

Problemi correlati