使用Masonry平均布局,代码如下:

其实就是用Masonry提供的两个方法,如下:

/**
* distribute with fixed spacing
*
* @param axisType 横排还是竖排
* @param fixedSpacing 两个控件间隔
* @param leadSpacing 第一个控件与边缘的间隔
* @param tailSpacing 最后一个控件与边缘的间隔
*/
[tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing: leadSpacing: tailSpacing:]; /**
* distribute with fixed item size
*
* @param axisType 横排还是竖排
* @param fixedItemLength 控件的宽或高
* @param leadSpacing 第一个控件与边缘的间隔
* @param tailSpacing 最后一个控件与边缘的间隔
*/
[tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength: leadSpacing: tailSpacing:];

一、水平布局

1、创建

//    图片组数
NSArray *imgAry = @[@"home_icon01",@"home_icon02",@"home_icon03",@"home_icon04"];
// 文字数字
NSArray *titleAry = @[@"高额",@"低息",@"灵活",@"便捷"]; NSMutableArray *tolAry = [NSMutableArray new];
for (int i = ; i < ; i ++) {
HTVerticalButton *btn = [HTVerticalButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:imgAry[i]] forState:UIControlStateNormal];
[btn setTitle:titleAry[i] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor colorWithHex:@"#333333"] forState:UIControlStateNormal];
btn.titleLabel.font = [UIFont systemFontOfSize:];
btn.imageEdgeInsets = UIEdgeInsetsMake(, , , );
[self addSubview:btn];
[tolAry addObject:btn];
}

2、使用Masonry布局

//水平方向控件间隔固定等间隔
[tolAry mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing: leadSpacing: tailSpacing:];
[tolAry mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@);
make.height.equalTo(@);
}]; //水平方向宽度固定等间隔
[tolAry mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength: leadSpacing: tailSpacing:];
[tolAry mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(@);
make.height.equalTo(@);
}];

效果如下:

二、垂直布局,不多阐述,直接上代码:

UIView *view = [UIView new];
view.backgroundColor = [UIColor yellowColor];
[self.view addSubview:view]; [view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo();
make.left.mas_equalTo();
make.centerX.mas_equalTo(self.view);
make.height.mas_equalTo(*);
}]; NSMutableArray *tolAry = [NSMutableArray new];//图片数组
NSMutableArray *titleAry = [NSMutableArray new];//标题数组
NSMutableArray *btnAry = [NSMutableArray new];//按钮数组 for (int i = ; i < ; i ++) {
UIImageView *img = [UIImageView new];
img.backgroundColor = [UIColor redColor];
[view addSubview:img]; UILabel *lab = [UILabel new];
lab.backgroundColor = [UIColor purpleColor];
[view addSubview:lab]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.backgroundColor = [UIColor greenColor];
[btn setTitle:[NSString stringWithFormat:@"%d",i+] forState:UIControlStateNormal];
[view addSubview:btn]; [tolAry addObject:img];
[titleAry addObject:lab];
[btnAry addObject:btn];
} // 实现masonry垂直方向固定控件高度方法
//垂直方向
[tolAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing: leadSpacing: tailSpacing:]; [tolAry mas_makeConstraints:^(MASConstraintMaker *make) { //垂直方向可以设置水平居中
make.left.mas_equalTo();
make.width.equalTo(@);
}]; [titleAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing: leadSpacing: tailSpacing:]; [titleAry mas_makeConstraints:^(MASConstraintMaker *make) { //垂直方向可以设置水平居中
make.left.mas_equalTo();
make.width.equalTo(@);
}]; [btnAry mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing: leadSpacing: tailSpacing:]; [btnAry mas_makeConstraints:^(MASConstraintMaker *make) { //垂直方向可以设置水平居中
make.right.mas_equalTo(-);
make.width.equalTo(@);
}];

效果如下图:

仅做记录!

iOS开发之--Masonry多个平均布局的更多相关文章

  1. IOS开发之——Masonry 只支持OC,暂不支持swift

    前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时 ...

  2. iOS开发之使用UIView-Positioning简化页面布局

    使用过代码布局的人可能会有这样的感觉,给控件设置frame的时候比较繁琐.最 近在Github上看到有一个UIView的一个分类UIView-Positioning,这个分类提供了一些属性,比如lef ...

  3. 写给IOS开发工程师的网页前端入门笔记

    前言:作为IOS开发工程师,终会接触到网页前端开发,甚至可能会有 用HTML5开发IOS的app客户端的需求.比如现在上架的app就有比如理财类型的app有的就用HTML开发的,从理财类型的app需求 ...

  4. iOS开发小技巧 - runtime适配字体

    iOS开发小技巧 - runtime适配字体 版权声明:本文为博主原创文章,未经博主允许不得转载,有问题可联系博主Email: liuyongjiesail@icloud.com 一个iOS开发项目无 ...

  5. iOS开发-Masonry简易教程

    关于iOS布局自动iPhone6之后就是AutoLayOut,AutoLayOut固然非常好用,不过有时候我们需要在页面手动进行页面布局,VFL算是一种选择,如果对VFL不是很熟悉可以参考iOS开发- ...

  6. iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)

    iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry) 随着iPhone6/6+设备的上市,如何让手头上的APP适配多种机型多种屏幕尺寸变得尤为迫 ...

  7. iOS开发针对对Masonry下的FPS优化讨论

    今天博客的内容就系统的讨论一下Masonry对FSP的影响,以及如何更好的使用Masonry.如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生.简单的说,Masonry的诞生让Aut ...

  8. iOS 开发 ZFUI framework控件,使布局更简单

    来自:http://www.jianshu.com/p/bcf86b170d9c 前言 为什么会写这个?因为在iOS开发中,界面的布局一直没有Android布局有那么多的方法和优势,我个人开发都是纯代 ...

  9. IOS开发之绝对布局和相对布局(屏幕适配)

    之前如果做过Web前端页面的小伙伴们,看到绝对定位和相对定位并不陌生,并且使用起来也挺方便.在IOS的UI设计中也有绝对定位和相对定位,和我们的web前端的绝对定位和相对定位有所不同但又有相似之处.下 ...

随机推荐

  1. ios开发中字符串的常用功能总结

    1.分割字符串 NSString * str1 = @"123/456"; NSArray * arr1 = [str1 componentsSeparatedByString:@ ...

  2. Vue(六)过滤器

    1. 简介 用来过滤模型数据,在显示之前进行数据处理和筛选 语法:{{ data | filter1(参数) | filter2(参数)}} 2. 关于内置过滤器 vue1.0中内置许多过滤器,如:c ...

  3. 异常处理汇总 ~ 修正果带着你的Code飞奔吧!

    异常处理汇总-运维系列 http://www.cnblogs.com/dunitian/p/4522983.html 异常处理汇总-开发工具  http://www.cnblogs.com/dunit ...

  4. jvm理论-常量池-string

    字符串常量池-常量项(cp_info)结构 CONSTANT_String_info{ u1 tag=8; u2 string_index;//存放 CONSTANT_Utf8_info 指针 } C ...

  5. angularjs自定义filter

    angular.Module API Overview Methods info([info]); provider(name, providerType); factory(name, provid ...

  6. JSONObject、JSONArray、Map、JavaBean的相互转换

    1,JSONObject json对象,就是一个键对应一个值,使用的是大括号{ },如:{key:value} 2,JSONArray json数组,使用中括号[ ],只不过数组里面的项也是json键 ...

  7. 读取mysql数据库的数据,转为json格式

    # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

  8. kafka注册异常

    问题描述: kafka注册异常,提示brokers id已经被注册过 -- ::,] FATAL [Kafka Server ], Fatal error during KafkaServer sta ...

  9. ROM后缀含义

    ROM files, unless altered by the uploader, always have special suffixes to quickly denote what the s ...

  10. 说说Python编码规范

    前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来.         这么久没写了,再次拿起键盘,想想,发表些什 ...