masonry的等間隔排列

/**

?* 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);

}];

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容