Masonry的简单使用
#import "RootViewController.h"
#import "Masonry.h"
@interface RootViewController ()
@end
@implementation RootViewController
- (void)viewDidLoad {
[super viewDidLoad];
#pragma mark label
// 添加约束,不需要这只frame
UILabel *label = [UILabel new];
label.backgroundColor = [UIColor redColor];
// 添加父视图,视图添加完成之后才能进行布局
[self.view addSubview:label];
// 布局,实现布局方法
[label mas_makeConstraints:^(MASConstraintMaker *make) {
// 距离上面50
// make:相当于你要布局的视图,equalTo(参照视图的对象),如果参照视图是self.view,可以不设置参照视图的属性(就是top)
make.top.offset();
// 距离左边100;
make.left.offset();
// 距离右边100
make.right.equalTo(self.view).offset(-);
// 距离下面500
make.bottom.equalTo(self.view).offset(-);
}];
#pragma mark label1
UILabel *label1 = [UILabel new];
label1.backgroundColor = [UIColor greenColor];
[self.view addSubview:label1];
// 布局label1
// 先布局参照视图,否则约束容易丢失
[label1 mas_makeConstraints:^(MASConstraintMaker *make) {
//和label左边一致
// equalTo(自定义视图),需要设置视图的属性
// 如果是数值为0可以不写offset()
make.leading.equalTo(label.mas_leading);
//和label右边一致
make.trailing.equalTo(label.mas_trailing);
//上边距离label50
make.top.equalTo(label.mas_bottom).offset();
// 高度60
// mas_equalTo(数值)
make.height.mas_equalTo();
}];
#pragma mark label2
UILabel *label2 = [UILabel new];
label2.backgroundColor = [UIColor cyanColor];
[self.view addSubview:label2];
// 设置距离参照视图的内边距(上左下右)
UIEdgeInsets padding = UIEdgeInsetsMake(, , , );
[label2 mas_makeConstraints:^(MASConstraintMaker *make) {
// make.top.equalTo(self.view).offset(400);
// make.left.equalTo(self.view).offset(100);
// make.right.equalTo(self.view).offset(-100);
// make.bottom.equalTo(self.view).offset(-100);
// 设置约束视图的边界距离self.view边界值
make.edges.equalTo(self.view).insets(padding);
}];
#pragma mark label3
UILabel *label3 = [UILabel new];
label3.backgroundColor = [UIColor orangeColor];
[self.view addSubview:label3];
[label3 mas_makeConstraints:^(MASConstraintMaker *make) {
// 设置中心点一致
make.center.equalTo(label2);
// 设置大小
// make.width = label2.width - 40
// make.height = label2.height - 60
make.size.equalTo(label2).sizeOffset(CGSizeMake(-, -));
}];
}
Masonry的简单使用的更多相关文章
- Masonry的简单使用(一)
Masonry的简单使用(一) 一.新建工程 二.导入Masonry,可从我的GitHub上获取"Masonry":https://github.com/sycFuture/Mas ...
- iOS开发 Masonry的简单使用
首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout 从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...
- 第三方框架-纯代码布局:Masonry的简单使用
Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API.系统AutoLayout支持的操作,Masonry都支持,相比系统AP ...
- SDAutoLayout:比masonry更简单易用的自动布局库
SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ...
- Coding源码学习第四部分(Masonry介绍与使用(三))
接上篇继续进行Masonry 的学习. (12)tableViewCell 布局 #import "TableViewController.h" #import "Tes ...
- 自动布局库--Masonry使用
参考资料(戳这里): > Masonry官网 > Masonry介绍与使用实践(快速上手Autolayout) > iOS 开发实践之 Auto Layout > Ma ...
- iOS 资源大全
这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...
- IOS中文版资源库
Swift 语言写成的项目会被标记为 ★ ,AppleWatch 的项目则会被标记为 ▲. [转自]https://github.com/jobbole/awesome-ios-cn#librari ...
- 墙裂推荐 iOS 资源大全
这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...
随机推荐
- HDU 4044 GeoDefense
树形DP,和背包差不多.dp[now][x]表示now这个节点的子树上,花费为x的时候,获得的最大防御能力(保证敌方HP<=0) #include<cstdio> #include& ...
- SpringMVC和mybatis的框架
1.首先以一个项目做例子,该项目用到的框架即为SpringMVC+mybatis,项目环境为MyEclipse+sqlserver+tomcat6,项目的地址(项目+数据库备份文件)大家可以上我的百度 ...
- css padding和margin的百分比
前段时间我同事对于margin和padding应用百分比值似乎有些误解,觉得可能是个普遍问题,所以觉得有必要拿出来单独写一下. margin和padding都可以使用百分比值的,但有一点可能和通常的想 ...
- html背景图片拉伸至全屏
本来想在body的css中设置,但发现怎么弄也无法搞定,技术水平有限吧,最后通过下面方式来达到效果: <img src = 'url' border = '0' width = '100%' h ...
- IIS日志路径,修改存放位置,清除日志方法
IIS存放日志文件的默认存储路径是c:\windows\system32\logfiles 我们依次打开“我的电脑”,C盘,Windows文件夹,system32文件夹,logfiles文件夹,发现里 ...
- 如何检测 Android Cursor 泄漏
简介: 本文介绍如何在 Android 检测 Cursor 泄漏的原理以及使用方法,还指出几种常见的出错示例.有一些泄漏在代码中难以察觉,但程序长时间运行后必然会出现异常.同时该方法同样适合于其他需要 ...
- CSS border三角、圆角图形生成技术简介
http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...
- Variation of e.touches, e.targetTouches and e.changedTouches
We have the following lists: touches: A list of information for every finger currently touching the ...
- $(function(){})和$(document).ready(function(){}) 的区别
document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二是onloa ...
- @pathvariable 注解
1.4. @PathVariable 注解 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义 通过 @PathVar ...