Masonry

以下介绍均为个人学习理解,如果错误欢迎及时批评指正。

知识点1:

// auto-boxing macros allow you to simply use scalars and structs, they will be wrapped automatically

[orangeView mas_makeConstraints:^(MASConstraintMaker *make) {
    make.center.equalTo(CGPointMake(0, 50));//这里()里面的值代表相对于父视图的位置
    make.size.equalTo(CGSizeMake(200, 100));//这里的()里面的值代表自身的size 
}];

知识点2:

[view mas_makeConstraints:^(MASConstraintMaker *make) {
   make.edges.equalTo(lastView).insets(UIEdgeInsetsMake(5, 10, 15, 20));//edges代表距离别的视图的边缘距离,insets代表偏移量

}];

知识点3:

   // Layout top and bottom views to each take up half of the window
  [self.topView  mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.and.top.equalTo(self);//这里的left,right,top代表与self一致
}];      

知识点4:

// Inner views are configured for aspect fit with ratio of 3:1
[self.topView addSubview:self.topInnerView] [self.topInnerViewmas_makeConstraints:^(MASConstraintMaker *make) { make.width.equalTo(self.topInnerView.mas_height).multipliedBy(3);//代表宽度是自身高度的3:1 make.width.and.height.lessThanOrEqualTo(self.topView);//自身的宽高小于等于self.topview的宽高 make.width.and.height.equalTo(self.topView).with.priorityLow();//自身的宽高等于self.topView的宽高,但是优先级低 make.center.equalTo(self.topView);//自身的中心等于self.topView的中心 }];
知识点5:

//you can attach debug keys to views like so:
//    greenView.mas_key = @"greenView";//相当于给greenView的所有约束都提供了一个键
//    redView.mas_key = @"redView";
//    blueView.mas_key = @"blueView";  
//    superview.mas_key = @"superview";
//  调试约束的时候用到的Key
//OR you can attach keys automagically like so:
  MASAttachKeys(greenView, redView, blueView, superview) ;make.height.greaterThanOrEqualTo(@5000).key(@"ConstantConstraint");//给单独的约束添加key

知识点6:

[self.growingButton updateConstraints:^(MASConstraintMaker *make) { make.center.equalTo(self); make.width.equalTo(@(self.buttonSize.width)).priorityLow();//equalTo后面接NSNumber类型的数据(我试过用Integer类型的也可以) make.height.equalTo(@(self.buttonSize.height)).priorityLow(); make.width.lessThanOrEqualTo(self); make.height.lessThanOrEqualTo(self); }];
知识点7:
添加动画
// tell constraints they need updating
[self setNeedsUpdateConstraints];

// update constraints now so we can animate the change
[self updateConstraintsIfNeeded];

[UIView animateWithDuration:0.4 animations:^{
    [self layoutIfNeeded];
}];

你可能感兴趣的:(Masonry)