Authored by Jonas Budelmann

change multiplier syntax

... ... @@ -127,10 +127,19 @@
#pragma mark - NSLayoutConstraint multiplier proxies
- (id<MASConstraint> (^)(CGFloat))percent {
return ^id(CGFloat percent) {
- (id<MASConstraint> (^)(CGFloat))multipliedBy {
return ^id(CGFloat multiplier) {
for (id<MASConstraint> constraint in self.childConstraints) {
constraint.percent(percent);
constraint.multipliedBy(multiplier);
}
return self;
};
}
- (id<MASConstraint> (^)(CGFloat))dividedBy {
return ^id(CGFloat divider) {
for (id<MASConstraint> constraint in self.childConstraints) {
constraint.dividedBy(divider);
}
return self;
};
... ...
... ... @@ -52,7 +52,12 @@
/**
* Sets the NSLayoutConstraint multiplier property
*/
@property (nonatomic, copy, readonly) id<MASConstraint> (^percent)(CGFloat percent);
@property (nonatomic, copy, readonly) id<MASConstraint> (^multipliedBy)(CGFloat multiplier);
/**
* Sets the NSLayoutConstraint multiplier to 1.0/dividedBy
*/
@property (nonatomic, copy, readonly) id<MASConstraint> (^dividedBy)(CGFloat divider);
/**
* Sets the NSLayoutConstraint priority to a float or MASLayoutPriority
... ...
... ... @@ -148,12 +148,23 @@
#pragma mark - NSLayoutConstraint multiplier proxies
- (id<MASConstraint> (^)(CGFloat))percent {
return ^id(CGFloat percent) {
- (id<MASConstraint> (^)(CGFloat))multipliedBy {
return ^id(CGFloat multiplier) {
NSAssert(!self.hasBeenInstalled,
@"Cannot modify constraint percent after it has been installed");
@"Cannot modify constraint multiplier after it has been installed");
self.layoutMultiplier = percent;
self.layoutMultiplier = multiplier;
return self;
};
}
- (id<MASConstraint> (^)(CGFloat))dividedBy {
return ^id(CGFloat divider) {
NSAssert(!self.hasBeenInstalled,
@"Cannot modify constraint multiplier after it has been installed");
self.layoutMultiplier = 1.0/divider;
return self;
};
}
... ...
... ... @@ -157,7 +157,7 @@ describe(@"multiplier & constant", ^{
[constraint install];
expect(^{
constraint.percent(0.9);
constraint.multipliedBy(0.9);
}).to.raise(@"NSInternalInconsistencyException");
});
... ... @@ -225,7 +225,7 @@ describe(@"install", ^{
it(@"should create layout constraint on commit", ^{
MASViewAttribute *secondViewAttribute = otherView.mas_height;
constraint.equalTo(secondViewAttribute);
constraint.percent(0.5);
constraint.multipliedBy(0.5);
constraint.offset(10);
constraint.priority(345);
[constraint install];
... ...