Masonry横向纵向排列多个控件

/**
 *  多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值
 *
 *  @param axisType        轴线方向
 *  @param fixedSpacing    间隔大小
 *  @param leadSpacing     头部间隔
 *  @param tailSpacing     尾部间隔
 */
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType 
                    withFixedSpacing:(CGFloat)fixedSpacing l
                          eadSpacing:(CGFloat)leadSpacing 
                         tailSpacing:(CGFloat)tailSpacing;

/**
 *  多个固定大小的控件的等间隔排列,变化的是间隔的空隙
 *
 *  @param axisType        轴线方向
 *  @param fixedItemLength 每个控件的固定长度或者宽度值
 *  @param leadSpacing     头部间隔
 *  @param tailSpacing     尾部间隔
 */
- (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType 
                 withFixedItemLength:(CGFloat)fixedItemLength 
                         leadSpacing:(CGFloat)leadSpacing 
                         tailSpacing:(CGFloat)tailSpacing;

使用与图解

1、纵向等间距排列

NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:btn,btn1,btn2,btn3,btn31,btn4,btn5,btn6,btn7,btn9,btn10,btn11,btn12,btn13,btn14, nil];
[list mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedSpacing:1 leadSpacing:1 tailSpacing:1];
[list mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.equalTo(@15);
}];

19A5EC36-44FE-4725-805E-0A26C86849CF.png

2、纵向均分,各控件等高度排列

NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:btn,btn1,btn2,btn3,btn31,btn4,btn5,btn6,btn7,btn9,btn10,btn11,btn12,btn13,btn14, nil];
[list mas_distributeViewsAlongAxis:MASAxisTypeVertical withFixedItemLength:20 leadSpacing:1 tailSpacing:1];
[list mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.equalTo(@15);
}];

8E1DB17E-9C80-4486-9FF2-569A143784ED.png

3、横向均分,各控件等间距排列

NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:btn,btn1,btn2,btn3,btn31,btn4,btn5,btn6,btn7,btn9,btn10,btn11,btn12,btn13,btn14, nil];
[list mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedSpacing:1 leadSpacing:10 tailSpacing:10];
[list mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(@60);
    make.height.equalTo(@60);
}];

3435ADF2-C9F8-46FC-90E8-0EBB9C7FECE1.png

4、横向均分,各控件等宽度排列

NSMutableArray *list = [[NSMutableArray alloc] initWithObjects:btn,btn1,btn2,btn3,btn31,btn4,btn5,btn6,btn7,btn9,btn10,btn11,btn12,btn13,btn14, nil];
[list mas_distributeViewsAlongAxis:MASAxisTypeHorizontal withFixedItemLength:10 leadSpacing:10 tailSpacing:10];
[list mas_makeConstraints:^(MASConstraintMaker *make) {
    make.top.equalTo(@60);
    make.height.equalTo(@60);
}];

6B5D6E67-3B7B-4281-A91E-951C72608254.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android常用基础

自定义View(四)-动画- Interpolator与Evaluator

Interpolator插值器之前我们已经接触过了,而Evaluator好像我们还没有将,这是属性动画中俩个比较中的两个知识点,弄清楚它们有助于我们更好的使用与...

932
来自专栏冰霜之地

由FlexBox算法强力驱动的Weex布局引擎

在上篇文章里面谈了Weex在iOS客户端工作的基本流程。这篇文章将会详细的分析Weex是如何高性能的布局原生界面的,之后还会与现有的布局方法进行对比,看看Wee...

1194
来自专栏hightopo

HT For Web 拓扑图背景设置

1043
来自专栏coding

使用v-for遍历数据

784
来自专栏iOS122-移动混合开发研究院

Masonry -- 使用纯代码进行iOS应用的autolayout自适应布局

简介 简化iOS应用使用纯代码机型自适应布局的工作,使用一种简洁高效的语法替代NSLayoutConstraints. 最新示例: 点击下载 项目简议: 如果再...

2005
来自专栏欧阳大哥的轮子

iOS下的界面布局利器-MyLayout布局框架

MyLayout是一套iOS界面视图布局框架。其内核是基于对UIView的layoutSubviews方法的重载以及对子视图的bounds和center属性的设...

753
来自专栏Albert陈凯

Spark详解03Job 物理执行图Job 物理执行图

Job 物理执行图 在 Overview 里我们初步介绍了 DAG 型的物理执行图,里面包含 stages 和 tasks。这一章主要解决的问题是: 给定 jo...

2707
来自专栏Python数据科学

使用Pandas&NumPy进行数据清洗的6大常用方法

数据科学家花了大量的时间清洗数据集,并将这些数据转换为他们可以处理的格式。事实上,很多数据科学家声称开始获取和清洗数据的工作量要占整个工作的80%。

1292
来自专栏菩提树下的杨过

javascript:查找“跳号”号码

业务背景: 航空货运系统中,“货运代理商”会定期从“航空公司”领取一定数量的纸质运单(每张纸上有一个单号),这些单号都是连续的(即:每次可以理解为领取一个“号段...

1748
来自专栏乐百川的学习频道

Java 8 新特性(三)新的日期时间类

老日期类 一说到在Java中处理日期和时间,我们首先想到的肯定是java.util.Date类。确实,由于很多教材和文献都比较老,所以大多数人学习Java的时候...

2035

扫码关注云+社区