2013-02-23 9 views
13

Vedo il seguente output nella consoleCome leggere l'output del registro di NSAutoresizingMaskLayoutConstraint?

"<NSAutoresizingMaskLayoutConstraint:0x100510500 h=--& v=&-- H:|-(0)-[NSView] 
    (Names: NSView:0x1016ab760, '|':NSClipView:0x1016a26b0)> 
    (Actual Distance - pixels):0" 

Normalmente ho capito come leggere un messaggio di log per i vincoli. Ma i vincoli di autoresizingMask mi confondono sempre. In che modo i seguenti caratteri nell'output del registro corrispondono alla maschera di ridimensionamento automatico?

h=--& v=&-- H:|-(0)-[NSView]

ho visto parecchi video WWDC 2012, che non riusciva a spiegare la lettura maschera vincoli di layout auto-ridimensionamento.

+8

possibile duplicato di [Quando si esegue il debug di autolayout qual è il significato delle stringhe di maschera autoresizing come h = - & v = - & -?] (http://stackoverflow.com/questions/14290100/when-debugging-autolayout-what-is-the-mating-of-the-autoresizing-mask-strings-s) – jrturton

+3

Si prega di vedere il mio rispondi nella domanda collegata. – jrturton

risposta

1

jrturton descrive la prima parte dell'output di debug nella sua risposta (si vedano i commenti)

h = - & v = & -

La seconda parte è lo stesso per tutti i layout automatico vincoli:

H: | - (0) - [NSView]

Questo è solo dare dettagli su come la maschera si è trasformata in un vincolo. "H" significa orizzontale, il "|" indica il contenitore in cui si trova la vista (in questo caso un NSClipView), il - (0) - indica che è vincolato a 0 pixel a sinistra della vista (in questo caso un NSView generico).

Così un vincolo è stato aggiunto legando il bordo sinistro della vista direttamente alla sua superview. (Dato che il lato destro non è vincolato, flitterà nella brezza, proprio come dice la maschera autoresizzante.)

+0

È anche importante notare che il metodo 'description' dell'oggetto NSLayoutConstraint riflette il modo in cui è stato costruito. Quindi, anche se crei due vincoli semanticamente simili, apparirà diverso nell'output del registro quando sono stati costruiti in modo diverso. – toto