Masonry第三方代码约束
#import "RootViewController.h"
#import "Masonry.h" @interface RootViewController () @end @implementation RootViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view. #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,可以不设置参照视图的属性
offset:距离数值
*/
make.top.equalTo(self.view).offset(); // 距离左边100
make.left.equalTo(self.view).offset(); // 距离右边100
make.right.offset(-); // 距离下面500
make.bottom.offset(-); }]; #pragma mark - label1 // 添加约束,不需要设置frame
UILabel *label1 = [UILabel new];
label1.backgroundColor = [UIColor greenColor]; // 添加到父视图上,视图添加完成后才能进行布局
[self.view addSubview:label1]; // 先布局参照视图,否则约束容易丢失
[label1 mas_makeConstraints:^(MASConstraintMaker *make) { // 和label左边一致
// equalTo(自定义的视图),需要设置视图的属性,如果数值为0,可以不写offset()
make.leading.equalTo(label.mas_leading); // 和label右边一致
make.trailing.equalTo(label.mas_trailing); // 上边距离label 50
make.top.equalTo(label.mas_bottom).offset(); // 高度60
make.height.mas_equalTo(); }]; #pragma mark - label2 UILabel *label2 = [[UILabel alloc] init];
label2.backgroundColor = [UIColor orangeColor];
[self.view addSubview:label2]; // [label2 mas_makeConstraints:^(MASConstraintMaker *make) {
//
// make.left.offset(100);
// make.right.offset(-100);
// make.top.offset(400);
// make.bottom.offset(-100);
// }]; // 设置距离参照视图的内边距(上左下右)
UIEdgeInsets padding = UIEdgeInsetsMake(, , , ); [label2 mas_makeConstraints:^(MASConstraintMaker *make) { // 设置约束视图的边界距离self.view的边界值
// make.edges.equalTo(self.view).insets(padding);
make.edges.insets(padding);
}]; #pragma mark - label3 UILabel *label3 = [[UILabel alloc] init];
label3.backgroundColor = [UIColor purpleColor];
[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(-, )); }];
} @end
Masonry第三方代码约束的更多相关文章
- 代码:Masonry 第三方框架
必备宏使用前提: //define this constant if you want to use Masonry without the 'mas_' prefix #define MAS_SHO ...
- Masonry控制台打印约束冲突问题解决
不知道你是不是视图的布局也是用的第三方Masonry,在使用中是不是也遇到了控制台约束冲突的警告打印,看下图: 从输出的信息可以知道,有的控件的约束明显重复了设置,所以指出了是哪个控件,重复设置了哪些 ...
- Swift中的Masonry第三方库——SnapKit
在OC开发时我常用一个名叫Masonry的第三方Autolayout库,在转Swift后发现虽然Swift可以混编OC,但总感觉有些麻烦,在Github上发现了这个叫做SnapKit的第三方库,发现使 ...
- 如何安全修改cocoapods上的第三方代码
其实搞java的都知道maven管理,解决第三方代码修改的办法就是架一个服务器,把这些修改的库放在这里,然后再maven里配置哪些需要用本地仓库的.其实cocoapods也可以做本地包管理: 大致方法 ...
- 使用xcodeproj 动态插入第三方代码
# 为什么这么做? 现在有这么一个使用场景,基线能生成项目A,项目B,项目C...如果只有项目A中使用SDK_A,其他项目都不使用,这时候就需要对基线进行差分,只有当我切换到项目A时,才插入SDK_A ...
- 【原】iOS学习之Masonry第三方约束
1.Masonry概述 目前最流行的Autolayout第三方框架 用优雅的代码方式编写Autolayout 省去了苹果官方恶心的Autolayout代码 大大提高了开发效率 框架地址:https:/ ...
- iOS-原生纯代码约束总结(二)之 AutoLayout
一,概述 AutoLayout相比AutoResizing更加实用,是可以完全替代AutoResizing的一种自动布局方式.而在使用AutoLayout前,我们必须理解一个属性,那就是transla ...
- Masonry remake更新约束
前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...
- Masonry 动画更新约束
前言 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万 ...
随机推荐
- Screen Space Subsurface Scatting(Skin Rendring)
还差通透度计算,RenderMonkey截图. 参考: http://developer.download.nvidia.com/presentations/2007/gdc/Advanced_Ski ...
- [Math] Beating the binary search algorithm – interpolation search, galloping search
From: http://blog.jobbole.com/73517/ 二分检索是查找有序数组最简单然而最有效的算法之一.现在的问题是,更复杂的算法能不能做的更好?我们先看一下其他方法. 有些情况下 ...
- Unity3D 敌人AI 和 动画( Animator )系统的实例讲解
在这个实例中,我们要做一些敌人AI的简单实现,其中自动跟随和动画是重点,我们要达到的目标如下: 1.敌人能够自动跟随主角 2.敌人模型一共有四个动作:Idle(空闲) Run(奔跑) Attack(攻 ...
- cJSON_json包的C语言解析库
cJSON库描述 CJSON是一个用于解析JSON包的C语言库,库文件为cJSON.c和cJSON.h, 所有的实现都在这两个文件中.原作者的地址cJSON. JSON包的解析 例如有一个JSON的数 ...
- [Node.js] Cluster,把多核用起来
原文地址: http://www.moye.me/?p=496 引子 众所周知,虽然Node的底层有一个IO线程池,但其应用层默认是单线程运行的,对于多核CPU环境来说,是一种资源的浪费. 所幸Nod ...
- Mongodb For Windows
关于 mongodb管理与安全认证 请移步这里: Mongodb For Mac OSX && 登录验证 安装mongodb 1. 官网下载 mongodb,如果嫌慢还可以前往百度云盘 ...
- Qt之QAbstractItemView视图项拖拽(二)
一.需求说明 上一篇文章Qt之QAbstractItemView视图项拖拽(一)讲述了实现QAbstractItemView视图项拖拽的一种方式,是基于QDrag实现的,这个类是qt自己封装好了的,所 ...
- spring事务与消息队列
在开发过程中,遇到一个bug,产生bug的原因是spring事务提交晚于消息队列的生产消息,导致消息队列消费消息时获取到的数据不正确.这篇文章介绍问题的产生和一步步的解决过程. 一.问题的产生: 场景 ...
- javaScript一些函数--Math()
1.不能显式地创建一个Math对象,直接使用它就可以了: 2.Math对象不能存储数据,和String,Date对象不同: 3.前面知道了parseInt()函数会通过消去小数点后面的一切,来使一个小 ...
- 网狐6603棋牌游戏源码.rar
网狐6603棋牌游戏源码.rar http://pan.baidu.com/s/1dFgGNq5 网络收集仅供学习,下载后请务必在24小时内删除! 以上是原vc6.0源码,下载后使用vs2015编译, ...