Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What constant can I use for the default Aqua space in Autolayout?

Tags:

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?

like image 734
Tim Avatar asked Dec 27 '12 14:12

Tim


1 Answers

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 
like image 141
John Sauer Avatar answered Nov 02 '22 06:11

John Sauer