美文网首页iOS知识库iOS开发记录
纯代码三种添加约束方法(推荐Masonry)

纯代码三种添加约束方法(推荐Masonry)

作者: Tanyfi | 来源:发表于2016-08-01 21:32 被阅读65次

使用代码实现Autolayout的方法1

  • 创建约束
+(id)constraintWithItem:(id)view1
attribute:(NSLayoutAttribute)attr1
relatedBy:(NSLayoutRelation)relation
toItem:(id)view2
attribute:(NSLayoutAttribute)attr2
multiplier:(CGFloat)multiplier
constant:(CGFloat)c;
* view1 :要约束的控件
* attr1 :约束的类型(做怎样的约束)
* relation :与参照控件之间的关系
* view2 :参照的控件
* attr2 :约束的类型(做怎样的约束)
* multiplier :乘数
* c :常量
  • 添加约束
- (void)addConstraint:(NSLayoutConstraint *)constraint;
- (void)addConstraints:(NSArray *)constraints;
  • 注意
    • 一定要在拥有父控件之后再添加约束
    • 关闭Autoresizing功能
    view.translatesAutoresizingMaskIntoConstraints = NO;
    

使用代码实现Autolayout的方法2 - VFL

  • 使用VFL创建约束数组
+ (NSArray *)constraintsWithVisualFormat:(NSString *)format
options:(NSLayoutFormatOptions)opts
metrics:(NSDictionary *)metrics
views:(NSDictionary *)views;
* format :VFL语句
* opts :约束类型
* metrics :VFL语句中用到的具体数值
* views :VFL语句中用到的控件
  • 使用下面的宏来自动生成views和metrics参数
NSDictionaryOfVariableBindings(...)

使用代码实现Autolayout的方法3 - Masonry

  • 使用步骤
    • 添加Masonry文件夹的所有源代码到项目中
    • 添加2个宏、导入主头文件
    // 只要添加了这个宏,就不用带mas_前缀
    #define MAS_SHORTHAND
    

// 只要添加了这个宏,equalTo就等价于mas_equalTo

define MAS_SHORTHAND_GLOBALS

// 这个头文件一定要放在上面两个宏的后面

import "Masonry.h"

```
  • 添加约束的方法
// 这个方法只会添加新的约束
 [view makeConstraints:^(MASConstraintMaker *make) {

 }];

// 这个方法会将以前的所有约束删掉,添加新的约束
 [view remakeConstraints:^(MASConstraintMaker *make) {

 }];

 // 这个方法将会覆盖以前的某些特定的约束
 [view updateConstraints:^(MASConstraintMaker *make) {

 }];
  • 约束的类型
1.尺寸:width\height\size
2.边界:left\leading\right\trailing\top\bottom
3.中心点:center\centerX\centerY
4.边界:edges

<转自小码哥,大神李明杰笔记>

相关文章

  • 纯代码三种添加约束方法(推荐Masonry)

    使用代码实现Autolayout的方法1 创建约束 添加约束 注意一定要在拥有父控件之后再添加约束关闭Autore...

  • 0707-Masonry

    Masonry masonry中去处mas的宏 masonry的使用方法 约束添加基本方式 约束的类型: 尺寸:w...

  • Masonry框架使用

    autolayout通过代码添加约束的方式有三种: 苹果自带的方式 VFL语言 Masonry框架 苹果自带的方式...

  • Masonry纯代码约束

    现在可视化编程成为一种热流,大大的减少了我们程序开发的时间,提高了我开发的效率。但是作为一个程序员,我们不但要会新...

  • Masonry使用方法

    Masonry的使用 Masonry的github地址 Masonry的基本使用方法 给控件添加约束使用Mason...

  • Masonry学习理解

    iOS中进行屏幕适配,使用的是AutoLayout。在纯代码中可以使用第三方Masonry添加约束进行适配,而使用...

  • masonry设置约束后如何获取正确的frame

    纯代码实现自定义布局,我通常使用masonry和设置frame同时进行,然而masonry设置约束后并不能直接反应...

  • masonry设置约束后如何获取正确的frame

    纯代码实现自定义布局,我通常使用masonry框架和设置frame同时进行,然而masonry设置约束后并不能直接...

  • iOS---Masonry的基本使用

    Masonry的GitHub地址 Masonry的基本使用方法 给控件添加约束 示例1宽高100*100居中显示 ...

  • masonry约束不定高, 不起作用

    当用masonry约束label,设置为不定高时, 没有起作用 添加如下代码即可:

网友评论

    本文标题:纯代码三种添加约束方法(推荐Masonry)

    本文链接:https://www.haomeiwen.com/subject/wwcfsttx.html