...
|
...
|
@@ -59,6 +59,37 @@ |
|
|
return constraint;
|
|
|
}
|
|
|
|
|
|
- (MASConstraint *)addConstraintWithAttributes:(MASAttribute)attrs {
|
|
|
MASAttribute anyAttribute = MASAttributeLeft | MASAttributeRight | MASAttributeTop | MASAttributeBottom | MASAttributeLeading | MASAttributeTrailing | MASAttributeWidth | MASAttributeHeight | MASAttributeCenterX | MASAttributeCenterY | MASAttributeBaseline;
|
|
|
|
|
|
NSAssert((attrs & anyAttribute) != 0, @"You didn't pass any attribute to make.attributes(...)");
|
|
|
|
|
|
NSMutableArray *attributes = [NSMutableArray array];
|
|
|
|
|
|
if (attrs & MASAttributeLeft) [attributes addObject:self.view.mas_left];
|
|
|
if (attrs & MASAttributeRight) [attributes addObject:self.view.mas_right];
|
|
|
if (attrs & MASAttributeTop) [attributes addObject:self.view.mas_top];
|
|
|
if (attrs & MASAttributeBottom) [attributes addObject:self.view.mas_bottom];
|
|
|
if (attrs & MASAttributeLeading) [attributes addObject:self.view.mas_leading];
|
|
|
if (attrs & MASAttributeTrailing) [attributes addObject:self.view.mas_trailing];
|
|
|
if (attrs & MASAttributeWidth) [attributes addObject:self.view.mas_width];
|
|
|
if (attrs & MASAttributeHeight) [attributes addObject:self.view.mas_height];
|
|
|
if (attrs & MASAttributeCenterX) [attributes addObject:self.view.mas_centerX];
|
|
|
if (attrs & MASAttributeCenterY) [attributes addObject:self.view.mas_centerY];
|
|
|
if (attrs & MASAttributeBaseline) [attributes addObject:self.view.mas_baseline];
|
|
|
|
|
|
NSMutableArray *children = [NSMutableArray arrayWithCapacity:attributes.count];
|
|
|
|
|
|
for (MASViewAttribute *a in attributes) {
|
|
|
[children addObject:[[MASViewConstraint alloc] initWithFirstViewAttribute:a]];
|
|
|
}
|
|
|
|
|
|
MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];
|
|
|
constraint.delegate = self;
|
|
|
[self.constraints addObject:constraint];
|
|
|
return constraint;
|
|
|
}
|
|
|
|
|
|
#pragma mark - standard Attributes
|
|
|
|
|
|
- (MASConstraint *)left {
|
...
|
...
|
@@ -105,42 +136,25 @@ |
|
|
return [self addConstraintWithLayoutAttribute:NSLayoutAttributeBaseline];
|
|
|
}
|
|
|
|
|
|
- (MASConstraint *(^)(MASAttribute))attributes {
|
|
|
return ^(MASAttribute attrs){
|
|
|
return [self addConstraintWithAttributes:attrs];
|
|
|
};
|
|
|
}
|
|
|
|
|
|
|
|
|
#pragma mark - composite Attributes
|
|
|
|
|
|
- (MASConstraint *)edges {
|
|
|
NSArray *children = @[
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_top],
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_left],
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_bottom],
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_right]
|
|
|
];
|
|
|
MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];
|
|
|
constraint.delegate = self;
|
|
|
[self.constraints addObject:constraint];
|
|
|
return constraint;
|
|
|
return [self addConstraintWithAttributes:MASAttributeTop | MASAttributeLeft | MASAttributeRight | MASAttributeBottom];
|
|
|
}
|
|
|
|
|
|
- (MASConstraint *)size {
|
|
|
NSArray *children = @[
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_width],
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_height]
|
|
|
];
|
|
|
MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];
|
|
|
constraint.delegate = self;
|
|
|
[self.constraints addObject:constraint];
|
|
|
return constraint;
|
|
|
return [self addConstraintWithAttributes:MASAttributeWidth | MASAttributeHeight];
|
|
|
}
|
|
|
|
|
|
- (MASConstraint *)center {
|
|
|
NSArray *children = @[
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_centerX],
|
|
|
[[MASViewConstraint alloc] initWithFirstViewAttribute:self.view.mas_centerY]
|
|
|
];
|
|
|
MASCompositeConstraint *constraint = [[MASCompositeConstraint alloc] initWithChildren:children];
|
|
|
constraint.delegate = self;
|
|
|
[self.constraints addObject:constraint];
|
|
|
return constraint;
|
|
|
return [self addConstraintWithAttributes:MASAttributeCenterX | MASAttributeCenterY];
|
|
|
}
|
|
|
|
|
|
#pragma mark - grouping
|
...
|
...
|
|