iOS传道iOS知识总结iOS开发攻城狮的集散地

Masonry使用介绍

2016-08-18  本文已影响334人  聆听者JYZ

现在iOS开发最多的莫过于:纯代码开发,对于纯代码开发,最常用的莫过于Masonry,下面根据我自己的经验总结下Masonry的一些使用方法。

基本方法

mas_makeConstraints只负责新增约束Autolayout不能同时存在两条针对于同一对象的约束否则会报错

mas_updateConstraints针对上面的情况会更新在block中出现的约束不会导致出现两个相同约束的情况

mas_remakeConstraints则会清除之前的所有约束仅保留最新的约束

常见约束的各种类型

/**

1.尺寸:width、height、size

2.边界:left、leading、right、trailing、top、bottom

3.中心点:center、centerX、centerY

4.边界:edges

5.偏移量:offset、insets、sizeOffset、centerOffset

6.priority()约束优先级(0~1000),multipler乘因数, dividedBy除因数

*/


使用实例

UIView*sv = [UIViewnew];

sv.backgroundColor= [UIColorredColor];

//在做autoLayout之前一定要先将view添加到superview上否则会报错

[selfaddSubview:sv];

//mas_makeConstraints就是Masonry的autolayout添加函数将所需的约束添加到block中行了

[svmas_makeConstraints:^(MASConstraintMaker*make) {

//********设置谁谁调这个方法********

//[要设置的View mas_makeConstraints:^(MASConstraintMaker *make) {

//********设置居中********

//make.center.equalTo(self);

//********设置水平居中********

//make.centerX.equalTo(self);

//********设置垂直居中********

//make.centerY.equalTo(self);

//********设置四周边距********

//make.edges.equalTo(相对于谁).with.insets(UIEdgeInsetsMake(距上,距左,距下,距右));

注意

//注意:上左下右相对的都是最远的边

//*********有多个相对对象********

/*等价于

make.top.equalTo(相对于谁).with.offset(10);

make.left.equalTo(相对于谁).with.offset(10);

make.bottom.equalTo(相对于谁).with.offset(-10);

make.right.equalTo(相对于谁).with.offset(-10);

*/

//********设置控件的大小********

//make.size.mas_equalTo(CGSizeMake(80, 80));

//********设置控件的宽度********

//make.width.mas_equalTo(300);

//********设置控件的高度********

//make.height.mas_equalTo(36);


更新约束点

make.width.equalTo(self.view.mas_width).multipliedBy(0.5);//设置宽度为self.view的一半,multipliedBy是倍数的意思,也就是,使宽度等于self.view宽度的0.5倍

make.width.and.height.equalTo(redView);//使宽高等于redView的宽高

make.leading.equalTo(redView.mas_right);//与redView右边的间距为0

make.bottom.right.equalTo(self.view).offset(-40);//同时设置两个属性

//trailing    leading (相对于左右方向的头部和尾部)

make.leading.equalTo(_redView.mas_trailing).offset(40);

==

make.left.equalTo(_redView.mas_right).offset(40);这是等价的

以上是自己常用的Masonry的约束方式,和一些注意点,在项目中使用Masonry对于纯代码开发的工程师是非常重要的,大家一起学习。

上一篇下一篇

猜你喜欢

热点阅读