In aggiunta alla risposta di jrturton, le informazioni migliori che ho trovato per comprendere le descrizioni dei vincoli sono la documentazione del linguaggio di Visual Format che è necessario creare vincoli nel codice. La lingua è documentata come una grammatica formale, quindi potrebbe richiedere un minuto per assorbire tutto.
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/AutolayoutPG/VisualFormatLanguage/VisualFormatLanguage.html#//apple_ref/doc/uid/TP40010853-CH3-SW1
vi faccia un esempio:
<NSLayoutConstraint:0x10ada8a70 H:|-(44)-[UIButton:0x10ac5dc30] (Names: '|':UIView:0x10ac60470)>
Questo è un vincolo Orientamento orizzontale (H:) Il collegamento è di 44 pixel da un superview (|) ad un UIButton Il superview denominato è un UIView (nomi: '|': UIView:) - importante sapere perché non è necessario essere vincolati dall'immedi ha mangiato superview
I valori esadecimali sono tutti indirizzi validi degli elementi dell'interfaccia utente. Quando si interrompe il breakpoint su tutte le eccezioni e si mette in pausa sul conflitto di vincoli, è possibile utilizzare l'indirizzo po per visualizzare l'oggetto del vincolo.Nel mio caso:
(lldb) po 0x10ac5dc30
<UIButton: 0x10ac5dc30; frame = (44 199; 30 30); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x10ac5ddf0>>
(lldb) po 0x10ac60470
<UIView: 0x10ac60470; frame = (0 64; 320 504); autoresize = RM+BM; animations = { position=<CABasicAnimation: 0x10ac5ec70>; bounds=<CABasicAnimation: 0x10ac62250>; }; layer = <CALayer: 0x10ac60530>>
fonte
2014-07-03 13:45:42
Sperimentando su questo in 10.7.5, ho riscontrato che NSAMLC sembra non apprezzare alcun attributo ma Larghezza e Altezza. Prova a creare un NSAMLC per, per esempio, a sinistra o in basso, e ti farà un'eccezione. Le altre cose che ho provato sono disuguaglianze, moltiplicazioni e aggiunte, e niente ha funzionato: non ho potuto ottenere un singolo NSAMLC che si descriveva con una e commerciale. Quindi, considera la mia curiosità colpita. –
Wow sei andato abbastanza in profondità, contento che ti sia divertito l'hacking! Mi sono arreso. Ho pensato che la conoscenza di ciò che questo avrebbe aiutato il mio debug, ma in realtà non lo è. Questi errori si manifestano solo quando si dispone di un layout con vincoli eccessivi, ovvero una superview impone la sua maschera autoresizing sul proprio layout (già) completamente vincolato, diventando così vincolato. Se li vedi normalmente significa che devi impostare translatesAutoresizingMaskIntoConstraints = NO. –
Quali errori? Non hai menzionato alcun errore nella tua domanda. –