According to the Cocoa Auto Layout Guide, I can use a dash in the visual constraint format language to "denote the standard Aqua space:"
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[a]-[b]" options:0 metrics:nil views:viewDict]];
However, I can't seem to find an NSLayout...
constant or method that allows me to do the same thing if I'm building a constraint without using the visual format language:
[self addConstraint:[NSLayoutConstraint constraintWithItem:a attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:b attribute:NSLayoutAttributeLeading multiplier:1.0f constant:<# ??? #>]];
Is there a constant (or another value or method) that I can use to define the Aqua space in such a situation?
I've found the "standard Aqua space" to be 8.0 between sibling views, and 20.0 between a view and its superview.
NSView* view = [NSView new] ; NSLayoutConstraint* constraintWithStandardConstantBetweenSiblings = [NSLayoutConstraint constraintsWithVisualFormat:@"[view]-[view]" options:0 metrics:nil views:NSDictionaryOfVariableBindings(view) ] [0] ; CGFloat standardConstantBetweenSiblings = constraintWithStandardConstantBetweenSiblings.constant ; // 8.0 NSView* superview = [NSView new] ; [superview addSubview:view] ; NSLayoutConstraint* constraintWithStandardConstantBetweenSuperview = [NSLayoutConstraint constraintsWithVisualFormat:@"[view]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(view) ] [0] ; CGFloat standardConstantBetweenSuperview = constraintWithStandardConstantBetweenSuperview.constant ; // 20.0
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With