码迷,mamicode.com
首页 > 移动开发 > 详细

IOS自适应库---- Masonry的使用

时间:2015-12-05 19:17:36      阅读:372      评论:0      收藏:0      [点我收藏+]

标签:

Masonry是一个轻量级的布局框架,拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有高可读性,而且同时支持 iOS 和 Max OS X。Masonry是一个用代码写iOS或OS界面的库,可以代替Auto layout。Masonry的github地址:https://github.com/SnapKit/Masonry

以下将从三个方面介绍 如下:

- Masonry配置                   - Masonry使用                  - Masonry实例

 

1   Masonry配置

- 推荐使用pods方式引入类库,pod ‘Masonry‘,若不知道pod如何使用,可参考文章: 提高ios开发效率的工具

然后  - 引入头文件 #import "Masonry.h"即可。

 

Masonry使用讲解

mas_makeConstraints 是给view添加约束,约束有几种,分别是边距,宽,高,左上右下距离,基准线。添加过约束后可以有修正,修正有offset(位移)修正和multipliedBy(倍率)修正。

语法一般是 make.equalTo   or    make.greaterThanOrEqualTo   or    make.lessThanOrEqualTo + 倍数和位移修正。

注意点1: 使用 mas_makeConstraints方法的元素必须事先添加到父元素的中,例如[self.view addSubview:view];

注意点2: mas_equalTo 和 equalTo 区别:mas_equalTo 比equalTo多了类型转换操作,一般来说,大多数时候两个方法都是通用的,但是对于数值元素使用mas_equalTo。对于对象或是多个属性的处理,使用equalTo。特别是多个属性时,必须使用equalTo,例如 make.left.and.right.equalTo(self.view);

注意点3: 注意到方法with和and,这连个方法其实没有做任何操作,方法只是返回对象本身,这个方法的左右完全是为了方法写的时候的可读性 。make.left.and.right.equalTo(self.view);和make.left.right.equalTo(self.view);是完全一样的,但是明显的加了and方法的语句可读性 更好点。

 

Masonry初级使用例子

// exp1: 中心点与self.view相同,宽度为100*400     300*200

-(void)exp1{

    UIView *view = [UIView new];

    [view setBackgroundColor:[UIColor redColor]];

    [self.view addSubview:view];

    [view mas_makeConstraints:^(MASConstraintMaker *make) {

        make.center.equalTo(self.view);

        make.size.mas_equalTo(CGSizeMake(100,400));

    }];

    

    UIView *view1=[UIView new];

    [view1 setBackgroundColor:[UIColor blackColor]];

    [self.view addSubview:view1];

    [view1 mas_makeConstraints:^(MASConstraintMaker *make) {

        make.center.equalTo(self.view);

        make.size.mas_equalTo(CGSizeMake(300, 200));

    }];

}

 

//exp2: 上下左右边距都为10

-(void)exp2{

    UIView *view = [UIView new];

    [view setBackgroundColor:[UIColor redColor]];

    [self.view addSubview:view];

    [view mas_makeConstraints:^(MASConstraintMaker *make) {

        make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10));

        //  make.top.equalTo(self.view).with.offset(10);

        //  make.left.equalTo(self.view).with.offset(10);

       //  make.bottom.equalTo(self.view).with.offset(-10);

        //  make.right.equalTo(self.view).with.offset(-10);

    }];

}

 

 

 

IOS自适应库---- Masonry的使用

标签:

原文地址:http://www.cnblogs.com/yhj1787354782/p/5022021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!