Masonry的基本使用

 1 //
 2 //  ViewController.m
 3 //  E01.Masonry基本使用
 4 //
 5 //  Created by apple on 15/8/8.
 6 //  Copyright (c) 2015年 apple. All rights reserved.
 7 //
 8
 9 #import "ViewController.h"
10
11 //define this constant if you want to use Masonry without the ‘mas_‘ prefix
12 // 如果你想在使用Masonry时省略mas_前缀请定义下面这个宏
13 #define MAS_SHORTHAND
14
15
16 //define this constant if you want to enable auto-boxing for default syntax
17 //如果你想让equalTo默认也带有自动装箱功能请定义下面这个宏
18 #define MAS_SHORTHAND_GLOBALS
19
20 #warning mark- 上面两个宏一定要定义在Masonry.h头文件的上面
21 #import "Masonry.h"
22
23 @interface ViewController ()
24
25 @end
26
27 @implementation ViewController
28 // 链式语言
29 - (void)viewDidLoad {
30     [super viewDidLoad];
31
32     UIView *bleuView = [[UIView alloc] init];
33     bleuView.backgroundColor = [UIColor blueColor];
34     [self.view addSubview:bleuView];
35
36     // 给blueView添加约束
37     [bleuView makeConstraints:^(MASConstraintMaker *make) {
38         make.left.equalTo(self.view.left).offset(50);
39         make.top.equalTo(self.view.mas_top).offset(50);
40         make.right.equalTo(self.view.mas_right).offset(-50);
41         make.bottom.equalTo(self.view.mas_bottom).offset(-50);
42
43         // 当给控件添加约束时此控件的约束属性和参照控件的属性相同时,参照控件的属性可以省略不写
44 //        make.left.equalTo(self.view).offset(50);
45 //        make.top.equalTo(self.view).offset(50);
46 //        make.right.equalTo(self.view).offset(-50);
47 //        make.bottom.equalTo(self.view).offset(-50);
48
49         // 当给控件添加约束时参照同一个控件,并且参照物的属性和要添加约束控件的属性相同,并且它们的offset值相同时,属性可以连续设置
50 //        make.left.top.equalTo(self.view).offset(50);
51 //        make.bottom.right.equalTo(self.view).offset(-50);
52
53 //        make.edges.equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
54
55         // 给blueView添加内边距 mas_equalTo可以把基本数据类型转换成对象类型(这个过程叫装箱)
56 //        make.edges.mas_equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
57
58
59     }];
60
61     // 给blueVeiw更新约束  -更新约束时如果已经添加过相同的约束属性时在此方法会覆盖前面的约束,使用新的约束
62     // 如果在此方法添加的有新的约束属性时可能会出现约束冲突,但是如果控件在此方法之前缺少约束,在此方法也可以添加缺少的约束
63     [bleuView updateConstraints:^(MASConstraintMaker *make) {
64 //        make.left.equalTo(self.view).offset(100);
65 //        make.width.equalTo(200);//不能用
66 //        make.bottom.equalTo(self.view.mas_bottom).offset(-50);
67
68     }];
69
70     // 删除blueView所有的约束,(如果在方法内部什么也没做,是删除之前blueView所有的约束,如果在此方法中添加约束,会删除之前添加的,再重新添加新的约束)
71     [bleuView remakeConstraints:^(MASConstraintMaker *make) {
72         make.edges.mas_equalTo(UIEdgeInsetsMake(150, 150, 50, 50));
73
74     }];
75 }
76
77 @end
时间: 2024-10-12 19:28:41

Masonry的基本使用的相关文章

Masonry整理

Masonry整理 Masonry是以AutoLayout为基础的轻量级布局框架更加简化了整个约束系统 Masonry三方下载本文参考:    地址1    地址2    地址3    地址4 *Masonry有哪些属性 @property (nonatomic, strong, readonly) MASConstraint left;@property (nonatomic, strong, readonly) MASConstraint top;@property (nonatomic,

Masonry介绍与使用实践:快速上手Autolayout

以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了 在iphone4-iphone4s时代 苹果推出了retina屏 但是给了码农们非常大的福利:window的size不变 在iphone5-iphone5s时代 window的size变了(320,568) 这时autoresizingMask派上了用场(为啥这时候不用Autolayout? 因为还要支持ios5呗) 简单

Masonry 轻量级布局框架的使用

iOS 提供了自动布局的方法,但是原生的方法使用太过麻烦 ,Masonry 框架提供了类似的方法,同样可以实现自动布局 ,代码更加直观,而且容易理解. Masonry 是一个轻量级的布局框架.拥有自己的描述语法,采用更优雅的链式语法封装自动布局,简洁明了并具有较高的可读性 ,同时支持iOS和Mac OSX.某种意义上可以取代AutoLayout 1.Masonry配置 使用时只需要导入头文件 (Masonry.h) 2.Masonry 常用的方法 2.1Masonry 给视图添加布局条件的常用方

Masonry应用【美图秀秀首页界面自动布局】

Masonry在此实现时候,并没有比NSLayoutConstraint简单,相反我觉得还不如NSLayoutConstraint. [self.topView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.view.mas_top); make.right.equalTo(self.view.mas_right).with.offset(-6); make.width.equalTo(@51);

iOS — Autolayout之Masonry解读

前言 1 MagicNumber -> autoresizingMask -> autolayout 以上是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 window的size固定为(320,480) 我们只需要简单计算一下相对位置就好了 在iphone4-iphone4s时代 苹果推出了retina屏 但是给了码农们非常大的福利:window的size不变 在iphone5-iphone5s时代 window的size变了(320,568) 这时auto

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

使用第三方框架 Masonry 实现自动布局 时间:2015-02-10 11:08:41      阅读:4595      评论:0      收藏:0      [点我收藏+] 由于前两天都在学习自动布局的使用,但是又觉得苹果原生的方式太过于麻烦,而且也不易于理解,昨天听人说了有个第三方框架也可以实现自动布局的功能,然后在https://github.com/上找到了Mansonry这个框架,使用起来真的减少了很多时间,而且代码直观,更加容易理解. 送上源码地址:https://githu

【IOS】AutoLayout框架Masonry

AutoLayout框架Masonry https://github.com/SnapKit/Masonryhttp://archerzz.ninja/ios/masonry-code.htmlhttp://www.cocoachina.com/ios/20141219/10702.htmlhttp://www.starming.com/index.php?v=index&view=81&utm_source=tuicool&utm_medium=referral http://s

AutoLayout框架Masonry使用心得

AutoLayout框架Masonry使用心得 AutoLayout的一些基本概念 利用约束来控制视图的大小和位置,系统会在运行时通过设置的约束计算得到frame再绘制屏幕 两个属性Content Compression Resistance(排挤,值越高越固定)和Content Hugging(拥抱),Masonry代码如下 //content hugging 为1000 [view setContentHuggingPriority:UILayoutPriorityRequired forA

masonry 使用笔记

Masonry的使用,动画,出现问题解决等 经过一点时间的使用,发现在网上很少有Masonry的教程,也仅仅有那么一两篇而已,在此我编写一下我最近一段时间使用的方法,供大家学习. Masonry是AutoLayout的一个第三方类库,用链式语法封装了冗长的AutoLayout代码,因此学习成本相对于官方提供的AutoLayout,以及VFL语言而言,低上很多很多... 准备 在GitHub上 https://github.com/SnapKit/Masonry 下载配置第三方库,基本使用方法在R

<转>iOS常用第三方库之Masonry

一.前言 关于苹果的布局一直是我比较纠结的问题,是写代码来控制布局,还是使用storyboard来控制布局呢?以前我个人开发的时候很少使用代码去写约束,因为太麻烦了.所以最终选择的都是AutoLayout进行布局,然后拖线设置约束.不过好多公司进行iOS开发的时候都会去动态的修改约束,而且有的会使用约束去创建一些动画,所以不太去用storyboard进行开发(还有就是使用storyboard几个人合作的时候比较麻烦).反倒更多的是写代码开发看起来更加的高效.所以好多开发者都开始去使用Masonr