/**
?* axisType 軸線方向?
?* fixedSpacing 間隔大小?
?* fixedItemLength 每個控件的固定長度/寬度
?* leadSpacing 頭部間隔?
?* tailSpacing 尾部間隔 * *///
1. 等間隔排列 - 多個控件間隔固定,控件長度/寬度變化
-?(void)mas_distributeViewsAlongAxis:(MASAxisType)axisTypewithFixedSpacing:(CGFloat)fixedSpacing?leadSpacing:(CGFloat)leadSpacingtailSpacing:(CGFloat)tailSpacing;//
2. 等間隔排列 - 多個固定大小固定,間隔空隙變化
-?(void)mas_distributeViewsAlongAxis:(MASAxisType)axisTypewithFixedItemLength:(CGFloat)fixedItemLengthleadSpacing:(CGFloat)leadSpacingtailSpacing:(CGFloat)tailSpacing;
所以也就知道了, 將fixedSpacing, leadSpacing, tailSpacing都賦值同一個間距, 數(shù)組內(nèi)的的View就會自動計算出寬度, 完成水平方向的布局.
要注意的是, 這個方法僅僅完成了水平方向的布局, 如果想確定這幾個View的位置, 還需要指定豎直方向位置和高度, 這里可以用數(shù)組直接調(diào)用?mas_makeConstraints:^(MASConstraintMaker *make){}?完成布局.
代碼示例:
UIView*backView=[UIView new];
backView.backgroundColor=[UIColor redColor];
[self.view addSubview:backView];
[backView mas_makeConstraints:^(MASConstraintMaker*make){
make.center.mas_equalTo(backView.center);
make.size.mas_equalTo(CGSizeMake(250,300));
}];
//水平排列//在backview里面放n個藍色方塊,寬度均為30, 間隙一樣大,n大于2啊,就一個還等個毛線啊
intnum=4;
NSMutableArray*blueViews=[NSMutableArray array];
for(inti=0;i<num;i++){
UIView*blueView=[UIView new];
blueView.backgroundColor=[UIColor blueColor];
[backView addSubview:blueView];
[blueViews addObject:blueView];
}
CGFloat padding=(250-num*30)/(num+1);
[blueViews mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:30leadSpacing:padding tailSpacing:padding];
[blueViews mas_makeConstraints:^(MASConstraintMaker*make){
make.centerY.equalTo(backView);
UIView*blueView=(UIView*)blueViews[0];
make.height.mas_equalTo(blueView.mas_width);
}];
//豎直排列NSMutableArray*yellowViews=[NSMutableArray array];
for(inti=0;i<num;i++){
UIView*yellowView=[UIView new];
yellowView.backgroundColor=[UIColor yellowColor];
[backView addSubview:yellowView];
[yellowViews addObject:yellowView];
}
[yellowViews mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:30leadSpacing:padding tailSpacing:padding];
[yellowViews mas_makeConstraints:^(MASConstraintMaker*make){
make.centerX.mas_equalTo(backView.mas_centerX);
make.width.mas_equalTo(30);
}];