大家可以把以下方法拷贝到项目中去运行一下看看效果,也可以在github上下载我的demo工程运行看一下。
https://github.com/624990742/DiaosiYeMeErDemo.git
/**
* distribute with fixed spacing
*
* @param axisType 横排还是竖排
* @param fixedSpacing 两个控件间隔
* @param leadSpacing 第一个控件与边缘的间隔
* @param tailSpacing 最后一个控件与边缘的间隔
*/
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
/**
* distribute with fixed item size
*
* @param axisType 横排还是竖排
* @param fixedItemLength 控件的宽或高
* @param leadSpacing 第一个控件与边缘的间隔
* @param tailSpacing 最后一个控件与边缘的间隔
*/
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing;
以上两个API分别为:
一、水平方向
1、水平方向排列、固定控件间隔、控件长度不定
- (void)maseryHorizontalLayout1{
NSMutableArray *testViewArr = [NSMutableArray array];
for (NSInteger index = 0; index < 5; index ++) {
UIView *testView = [[UIView alloc] init];
testView.backgroundColor = [UIColor RandomColor];//随机颜色
[self addSubview:testView];
[testViewArr addObject:testView];
if (testViewArr.count == 5) {//必须在最后统一布局
//FixedSpacing 水平左右间隔
//leadSpacing 第一个item距离手机屏幕的距离
//tailSpacing 最后一个item元素距离手机屏幕的距离
[testViewArr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:10 leadSpacing:10 tailSpacing:10];
// 设置array的垂直方向的约束
[testViewArr mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(100);
make.height.equalTo(100);
}];
}
}
}
2、水平方向排列、固定控件长度、控件间隔不定
- (void)maseryHorizontalLayout2{
NSMutableArray *testViewArr = [NSMutableArray array];
for (NSInteger index = 0; index < 5; index ++) {
UIView *testView = [[UIView alloc] init];
testView.backgroundColor = [UIColor RandomColor];//随机颜色
[self addSubview:testView];
[testViewArr addObject:testView];
if (testViewArr.count == 5) {//必须在最后统一布局
//ItemLength item元素的宽度
//leadSpacing 第一个item距离手机屏幕的距离
//tailSpacing 最后一个item元素距离手机屏幕的距离
[testViewArr mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:50 leadSpacing:10 tailSpacing:10];
// 设置array的垂直方向的约束
[testViewArr mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(220);
make.height.equalTo(100);
}];
}
}
}
二、垂直方方向
1、垂直方向排列、固定控件间隔、控件高度不定
-(void)maseryverticalLayout1{
NSMutableArray *testViewArr = [NSMutableArray array];
for (NSInteger index = 0; index < 5; index ++) {
UIView *testView = [[UIView alloc] init];
testView.backgroundColor = [UIColor RandomColor];//随机颜色
[self addSubview:testView];
[testViewArr addObject:testView];
if (testViewArr.count == 5) {//必须在最后统一布局
//ItemLength item元素的宽度
//leadSpacing 第一个item距离手机屏幕的距离
//tailSpacing 最后一个item元素距离手机屏幕的距离
[testViewArr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:100 leadSpacing:10 tailSpacing:10];
// 设置array的垂直方向的约束
[testViewArr mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(30);
make.width.equalTo(80);
}];
}
}
}
2、垂直方向排列、固定控件高度、控件间隔不定
-(void)maseryverticalLayout2{
NSMutableArray *testViewArr = [NSMutableArray array];
for (NSInteger index = 0; index < 5; index ++) {
UIView *testView = [[UIView alloc] init];
testView.backgroundColor = [UIColor RandomColor];//随机颜色
[self addSubview:testView];
[testViewArr addObject:testView];
if (testViewArr.count == 5) {//必须在最后统一布局
//ItemLength item元素的宽度
//leadSpacing 第一个item距离手机屏幕的距离
//tailSpacing 最后一个item元素距离手机屏幕的距离
[testViewArr mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:80 leadSpacing:10 tailSpacing:10];
// 设置array的垂直方向的约束
[testViewArr mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(100);
make.width.equalTo(80);
}];
}
}
}