Ho un elemento dell'interfaccia utente (UISwitch
in realtà, ma non importa davvero) che ha sia lo spazio iniziale che quello finale aggiunti a superview in Interface Builder. Il vincolo si presenta così in Xcode 6:iOS8 Auto layout programmaticamente pin al margine di layout relativo
Il vincolo per aver guidato lo spazio è lo stesso in modo efficace. Il valore del vincolo è 42.0 punti.
Questo è esattamente quello che voglio, perché per i vari dispositivi posso cambiare layoutMargins
proprietà su UIView
ei vincoli funziona correttamente, per aumentare il margine tra i punti di vista.
Ora voglio aggiungere un'altra vista nel codice che avrebbe anche lo spazio iniziale e finale fissato al suo margine di superview, quindi lo stesso layoutMargins
impostato su superview funzionerà.
ho appuntato la vista utilizzando lingua formato visivo con la seguente sintassi:
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"|-42.0-[separatorView]-42.0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(self.contentView, separatorView)];
[self.contentView addConstraints:constraints];
[self.contentView setNeedsUpdateConstraints];
questo funziona, ma layoutMargins
proprietà non ha alcun effetto di utilizzare questo vincolo, per cui è, ovviamente, non appuntato a margine, ma direttamente per superview.
Quindi la mia domanda è:
Come al pin spazi elemento dell'interfaccia utente a margine nel codice usando il linguaggio formato visivo? O se non possibile, come eseguire il pin con l'API constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant:
?
Grazie!