使用第三方框架 Masonry 实现自动布局

使用第三方框架 Masonry 实现自动布局

时间:2015-02-10 11:08:41      阅读:4595      评论:0      收藏:0      [点我收藏+]

由于前两天都在学习自动布局的使用,但是又觉得苹果原生的方式太过于麻烦,而且也不易于理解,昨天听人说了有个第三方框架也可以实现自动布局的功能,然后在https://github.com/上找到了Mansonry这个框架,使用起来真的减少了很多时间,而且代码直观,更加容易理解。

送上源码地址:https://github.com/Masonry/Masonry

以上说明了与参照控件的关系中三种条件的对应替代方法。

以上说明了上下左右等属性的对应替代属性。

一些设置约束的方法,更多内容请参考网站说明。

1 //设置约束
2 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block;
3
4 //如果之前已经有约束,则更新新的约束,如果没有约束,则添加约束
5 - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block;
6
7 //将之前的约束全部删除,添加新的约束
8 - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

以下为代码使用实现布局效果:

 1     //添加两个控件
 2     UIView *blueView = [[UIView alloc] init];
 3     blueView.backgroundColor = [UIColor blueColor];
 4     blueView.translatesAutoresizingMaskIntoConstraints = NO;
 5     [self.view addSubview:blueView];
 6
 7     UIView *redView = [[UIView alloc] init];
 8     redView.backgroundColor = [UIColor redColor];
 9     redView.translatesAutoresizingMaskIntoConstraints = NO;
10     [self.view addSubview:redView];
11
12     //给蓝色View设置约束
13     [blueView mas_makeConstraints:^(MASConstraintMaker *make) {
14         make.left.equalTo(self.view.mas_left).offset(30);//和父view的左边间距为30;
15         make.bottom.equalTo(self.view.mas_bottom).offset(-30);//和父view的底部间距为30;
16         make.right.equalTo(redView.mas_left).offset(-30);//和红色view的间距为30;
17         make.height.mas_equalTo(50);//蓝色view的高度为50
18     }];
19
20     //给红色View设置约束
21     [redView mas_makeConstraints:^(MASConstraintMaker *make) {
22         make.right.equalTo(self.view.mas_right).offset(-30);//和父view的右边间距为30;
23         make.bottom.equalTo(blueView.mas_bottom);//和蓝色view的底部对齐
24         make.height.equalTo(blueView.mas_height);//和蓝色view的高度相等
25         make.width.equalTo(blueView.mas_width);//和蓝色view的宽度相等
26     }];

效果图如下:

用了这个框架之后,再对比之前使用代码布局的效果,感觉就是一个天一个地啊,而且在某些地方使用block感觉比使用delegate更加实用和简捷方便,看来以后还是要多逛逛https://github.com/还是会得到很多收获的。

时间: 2024-10-25 04:54:58

使用第三方框架 Masonry 实现自动布局的相关文章

使用第三方框架 Masonry 实现自动布局的简单使用

苹果自带的原生自动布局方案太过繁琐,在此介绍一个简单好用的第三方框架. 1 //设置约束 2 - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block; 3 4 //如果之前已经有约束,则更新新的约束,如果没有约束,则添加约束 5 - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block; 6 7 //将之前的约束全部删除,添加新

Autolayout屏幕适配——代码实现(苹果公司 / VFL语言 / 第三方框架Masonry)

在讲解如何通过代码来实现屏幕适配前,先来了解一下,屏幕适配中用到的约束添加的规则. 在创建约束之后,需要将其添加到作用的view上 在添加时要注意目标view需要遵循以下规则: 1. 约束规则    1> 添加约束的规则(一) 对于两个同层级view之间的约束关系,添加到它们的父view上 2> 添加约束的规则(二) 对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上 3> 添加约束的规则(三) 对于有层次关系的两个view之间的约束关系,添加到层次较高的父view

第三方框架Masonry简述(约束管理)

Masonry链接:https://github.com/SnapKit/Masonry 作用:方便使用代码添加AutoLayout约束(AutoLayout在一定意义上替换了Frame,对Frame的改变变成对约束的操作) 使用步骤: 1.手动添加或者使用Cocoapods添加Masonry框架,并导入头文件Masonry.h 2.将需要添加约束的对象加入到父视图中 3.下面的代码的约束是以父视图为基准点的 以下代码中:使用这种注释方式,可以为属性添加标注,option+左键查看,声明一个Bu

第三方框架 Masonry的使用 实现布局

1. 下载地址 https://github.com/SnapKit/Masonry 2.  使用 2.1 Masonry的配置 使用只需要引入头文件  Masonry.h 即可: 2.2 Masonry常用方法 创建新的约束条件 [View mas_makeConstraints:^(MASConstraintMaker *make) {}]; 如果之前已经有约束,则更新新的约束,如果没有约束,则添加约束 [View mas_updateConstraints:^(MASConstraintM

使用第三方框架 Keep Layout 实现简单的自动布局

之前有写了一篇Masonry实现自动布局的随笔,今天无聊的时候又发现了另外一个自动布局的第三方框架Keep Layout,使用起来感觉比Masonry简单一点,相比之下容易理解? 附上源码地址:https://github.com/iMartinKiss/KeepLayout 关于一些属性的介绍: 属性间的关系以及优先级: 更多内容请参考网站说明. 附上简单自动布局的代码以及效果图: 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 // Do a

第三方框架-纯代码布局:Masonry的简单使用

Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API.系统AutoLayout支持的操作,Masonry都支持,相比系统API功能来说,Masonry是有过之而无不及. Masonry采取了链式编程的方式,代码理解起来非常清晰易懂,而且写完之后代码量看起来非常少.之前用NSLayoutConstraint写很多代码才能实现的布局,用Masonry最少一行代码就可以搞定.下面看到Masonry的代码就会发现,太简单易懂了.

Autolayout第三方库Masonry的入门与实践

在如今的iOS开发中,Autolayout已经是不得不使用了,而且是我们主动的去拥抱Autolayout.使用Autolayout最普遍的方式就是在xib或者storyboard中可视化的添加各种约束,这也是Autolayout入门需要掌握的,关于这部分内容,可以参考<iOS开发--Autolayout的实践与技巧>这篇博客.对于比较简单的App开发,可能使用可视化Autolayout也就足够了.但是如果UI布局稍微复杂多变一点,那么就不得不使用代码了.对于iOS原生的代码自动布局,真的是过于

GitHub 里面有大量优秀的第三方框架

写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每个项目都想集成的几个框架. SDWebImageView 1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 Model 类来存放这些数据.这就要求我们

iOS学习之常用第三方框架总结(经典/必看)

写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每个项目都想集成的几个框架. SDWebImageView 1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 Model 类来存放这些数据.这就要求我们