1. #import "RootViewController.h"
  2. #import "Masonry.h"
  3. @interface RootViewController ()
  4.  
  5. @end
  6.  
  7. @implementation RootViewController
  8.  
  9. - (void)viewDidLoad {
  10. [super viewDidLoad];
  11. #pragma mark label
  12. // 添加约束,不需要这只frame
  13. UILabel *label = [UILabel new];
  14. label.backgroundColor = [UIColor redColor];
  15. // 添加父视图,视图添加完成之后才能进行布局
  16. [self.view addSubview:label];
  17.  
  18. // 布局,实现布局方法
  19. [label mas_makeConstraints:^(MASConstraintMaker *make) {
  20. // 距离上面50
  21. // make:相当于你要布局的视图,equalTo(参照视图的对象),如果参照视图是self.view,可以不设置参照视图的属性(就是top)
  22. make.top.offset();
  23.  
  24. // 距离左边100;
  25. make.left.offset();
  26.  
  27. // 距离右边100
  28.  
  29. make.right.equalTo(self.view).offset(-);
  30.  
  31. // 距离下面500
  32. make.bottom.equalTo(self.view).offset(-);
  33.  
  34. }];
  35.  
  36. #pragma mark label1
  37.  
  38. UILabel *label1 = [UILabel new];
  39. label1.backgroundColor = [UIColor greenColor];
  40. [self.view addSubview:label1];
  41.  
  42. // 布局label1
  43. // 先布局参照视图,否则约束容易丢失
  44. [label1 mas_makeConstraints:^(MASConstraintMaker *make) {
  45. //和label左边一致
  46. // equalTo(自定义视图),需要设置视图的属性
  47. // 如果是数值为0可以不写offset()
  48. make.leading.equalTo(label.mas_leading);
  49. //和label右边一致
  50. make.trailing.equalTo(label.mas_trailing);
  51. //上边距离label50
  52. make.top.equalTo(label.mas_bottom).offset();
  53. // 高度60
  54. // mas_equalTo(数值)
  55. make.height.mas_equalTo();
  56. }];
  57.  
  58. #pragma mark label2
  59.  
  60. UILabel *label2 = [UILabel new];
  61. label2.backgroundColor = [UIColor cyanColor];
  62. [self.view addSubview:label2];
  63. // 设置距离参照视图的内边距(上左下右)
  64. UIEdgeInsets padding = UIEdgeInsetsMake(, , , );
  65.  
  66. [label2 mas_makeConstraints:^(MASConstraintMaker *make) {
  67. // make.top.equalTo(self.view).offset(400);
  68. // make.left.equalTo(self.view).offset(100);
  69. // make.right.equalTo(self.view).offset(-100);
  70. // make.bottom.equalTo(self.view).offset(-100);
  71. // 设置约束视图的边界距离self.view边界值
  72. make.edges.equalTo(self.view).insets(padding);
  73. }];
  74.  
  75. #pragma mark label3
  76.  
  77. UILabel *label3 = [UILabel new];
  78. label3.backgroundColor = [UIColor orangeColor];
  79. [self.view addSubview:label3];
  80.  
  81. [label3 mas_makeConstraints:^(MASConstraintMaker *make) {
  82.  
  83. // 设置中心点一致
  84. make.center.equalTo(label2);
  85.  
  86. // 设置大小
  87.  
  88. // make.width = label2.width - 40
  89. // make.height = label2.height - 60
  90. make.size.equalTo(label2).sizeOffset(CGSizeMake(-, -));
  91.  
  92. }];
  93.  
  94. }

Masonry的简单使用的更多相关文章

  1. Masonry的简单使用(一)

    Masonry的简单使用(一) 一.新建工程 二.导入Masonry,可从我的GitHub上获取"Masonry":https://github.com/sycFuture/Mas ...

  2. iOS开发 Masonry的简单使用

    首先,在正式使用Masonry之前,我们先来看看在xib中我们是如何使用AutoLayout     从图中我们可以看出,只要设置相应得局限,控制好父视图与子视图之间的关系就应该很ok的拖出你需要的需 ...

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

    Masonry是一个对系统NSLayoutConstraint进行封装的第三方自动布局框架,采用链式编程的方式提供给开发者API.系统AutoLayout支持的操作,Masonry都支持,相比系统AP ...

  4. SDAutoLayout:比masonry更简单易用的自动布局库

    SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLa ...

  5. Coding源码学习第四部分(Masonry介绍与使用(三))

    接上篇继续进行Masonry 的学习. (12)tableViewCell 布局 #import "TableViewController.h" #import "Tes ...

  6. 自动布局库--Masonry使用

    参考资料(戳这里): >  Masonry官网 >  Masonry介绍与使用实践(快速上手Autolayout) >  iOS 开发实践之 Auto Layout >  Ma ...

  7. iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  8. IOS中文版资源库

    Swift 语言写成的项目会被标记为  ★ ,AppleWatch 的项目则会被标记为 ▲. [转自]https://github.com/jobbole/awesome-ios-cn#librari ...

  9. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

随机推荐

  1. List的输出方法

    1.for (int i = 0; i < list.size(); i++) {    System.out.println(list.get(i));} 2.List list = new  ...

  2. RestTemplate 发送Post 多个参数请求

    MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>(); requestEntity ...

  3. 如何在Eclipse中安装PDT插件来开发PHP

    之前查过很多PDT的安装方法,60%都是让人直接安装All-in-one的PHP eclipse版本,纯属让人无语,而有些给出的PDT安装链接无法正确下载插件,对此,给出了我安装过的PDT插件下载地址 ...

  4. ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

    提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'.前两天也出现过这个问题,网上找了一个比 ...

  5. 步进控件——UIStepper

    步进控件,可用于替换传统用于输入值的文本框.步进控件提供了“+”和“-”两个按钮,用来改变stepper内部value的增加或减少,调用的事件是UIControlEventValueChanged.由 ...

  6. jsp 获取应用目录

    ${pageContext.request.contextPath}  //   应用名为“demo1” 则得到的是"/demo1" <script>$(documen ...

  7. IOS开发-OC学习-protocol(协议)

    在OC语言中,协议是一组方法,里面有两种方法,一种是遵守这个协议的类的实例必须实现的方法,另一种是可以实现也可以不实现的方法. 例如我定义一个学生的协议,这个协议里有两个方法,其中一个是必选的方法:学 ...

  8. MMA

    在32位的系统上,线性地址空间可达到4GB,这4GB一般按照3:1的比例进行分配,也就是说用户进程享有前3GB线性地址空间,而内核独享最后1GB线性地址空间.由于虚拟内存的引入,每个进程都可拥有3GB ...

  9. UVa 11450 - Wedding shopping

    题目大意:我们的朋友Bob要结婚了,所以要为他买一些衣服.有m的资金预算,要买c种类型的衣服(衬衫.裤子等),而每种类型的衣服有k个选择(只能做出一个选择),每个选择的衣服都有一个价格,问如何选择才能 ...

  10. 微软2017MVP大礼包拆箱攻略

    容我本周偷个懒,晒个大礼包就糊弄过去了.13号晚上拿到的大礼包,激动的没敢拆,一直等到娃睡着了,才偷偷打开了快递,忍了两天没忍住,上来晒图得瑟一下,请各位轻拍,谢谢! 1.大礼包的盒子(联邦快递的盒子 ...