Masonry 代码添加约束

0. 实用于:

(1)。纯代码写的ui控件(按钮,视图,标签等)

(2)。xib指向的视图。。等

1.在做Masonry的autoLayout之前 一定要先将view添加到superview上 否则会报错:(根据个人的经验:view上的子UI布局一定要在Masonry的autoLayout之后,即先确定view位置)

2.首先在Masonry中能够添加autolayout约束有三个函数

- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block;
- (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block;
- (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block;

mas_makeConstraints 只负责新增约束 Autolayout不能同时存在两条针对于同一对象的约束 否则会报错
mas_updateConstraints 针对上面的情况 会更新在block中出现的约束 不会导致出现两个相同约束的情况
mas_remakeConstraints 则会清除之前的所有约束 仅保留最新的约束
三种函数善加利用 就可以应对各种情况了

3.约束添加完成以后。(更新位置)

[self.view setNeedsUpdateConstraints];
[self.view updateConstraintsIfNeeded];
[UIView animateWithDuration:0.35 animations:^{
        [self.view layoutIfNeeded];
    } completion:^(BOOL finished) {
        
    }];

时间: 2024-10-12 01:47:08

Masonry 代码添加约束的相关文章

纯代码添加约束,autolayout 适配

IOS AutoLayout 代码约束—VFL 2014-12-22 22:19:43http://my.oschina.net/carson6931-Carson6931-点击数:2148 IOS 提供了两种添加约束的方法 第一种: +(instancetype)constraintWithItem:(id)view1 attribute:(NSLayoutAttribute)attr1 relatedBy:(NSLayoutRelation)relation toItem:(id)view2

【转】iOS6中的Auto Layout:通过代码添加约束

最近做的项目用到了Auto Layout,于是经过了一番大量的google,这是我看到的讲用代码创建约束最清晰的一篇教程,于是想跟更多的人分享一下.原文也比较简单,可以直接过去看,如果我翻译的那块需要校对的,也请多多指教. 原文:http://www.ioscreator.com/tutorials/auto-layout-in-ios-6-adding-constraints-through-code iOS6提供了一种设计用户界面的新方法:Auto Layout.使用Auto-Layout很

代码添加约束的一个例子

NSLayoutConstraint *con = [NSLayoutConstraint constraintWithItem:self.workBgView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:workCalendar attribute:NSLayoutAttributeBottom multiplier:1 constant:10];[_scrollView addConstraint

iOS 8 Auto Layout界面自动布局系列3-使用代码添加布局约束

本系列的第一篇文章介绍了自动布局的基本原理,第二篇文章通过一个简单的例子演示了如何使用Xcode的Interface Builder(简称IB)以可视化方式添加约束.本篇为该系列的第三篇文章,主要介绍如何通过代码来添加布局约束. 其实,我个人认为本篇才应该是系列的第二篇,因为通过代码构建自动布局约束是最基础的,也是最灵活的方式.而IB只不过是把复杂的过程以直观简单的方式呈现出来,而且并非所有的情况都能用IB来解决,所以学习并掌握通过代码来添加自动布局约束是非常必要的.但是为了降低学习的难度,提高

Masonry 添加约束要注意顺序

对一个视图添加约束,其依赖的约束必须先已经存在,不能依赖该代码后的约束,否则造成不可预料的结果,如下代码能达到预期效果 - (void)makeConstraints { __weak typeof(self) weakSelf = self; [self.photoMoreButton mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(weakSelf.photoButton).with.offset(-6

利用代码添加autolayout约束

1.概述 通常我们通过storyboard能够完成的,代码也能够完成,所以这里介绍下代码实现约束的添加,通常我们不这么干(在不使用第三方框架的情况下,使用系统自带的类添加约束特别繁琐),所以这里仅仅简单介绍下代码实现原理 2.实现效果 实现效果  纯OC代码  在storyboard中的一条约束在代码中的体现就是一个约束对象,所以添加在storyboard上添加一条约束,相当于创建了一个约束对象并将该约束对象添加到对应的视图上 第一步:创建子控件视图 第二步:禁用子控件的autoresizing

iOS代码添加视图约束

项目要做这样一个效果的启动页. 考虑到版本号是会不断变更的,因此采用动画效果启动页,让版本号动态加载iOS启动页动画效果 - 简书 考虑到屏幕适配问题,因此采用代码对视图添加约束.在添加约束的过程中遇到了一些问题,在此做一下记录和总结. 代码实现autolayout的注意点: 1.要先禁止autoresizing功能,设置view 的translatesAutoresizingMaskIntoConstraints 属性为 NO; 2.添加约束之前,一定要保证相关控件都已经在各自的父控件上.(就

Storyboard中使用UIscrollView添加约束的开发总结

第一次在项目中用storyboard做界面,一般的界面直接添加约束非常爽快 然后有个界面有scrollview,添加了约束还总是出错 刚开始使用了 wCompact,hRegular,滑动出现问题,有些界面滑动不了或者可以左右滑动 已经在viewDidLoad里面添加了scrollView的contentsize 约束什么的都没有问题,百思不得其解 后来上网查了一下资料 还是scrollView的contentsize的问题 scrollView的contentsize只能在viewDidApp

第三方框架Masonry简述(约束管理)

Masonry链接:https://github.com/SnapKit/Masonry 作用:方便使用代码添加AutoLayout约束(AutoLayout在一定意义上替换了Frame,对Frame的改变变成对约束的操作) 使用步骤: 1.手动添加或者使用Cocoapods添加Masonry框架,并导入头文件Masonry.h 2.将需要添加约束的对象加入到父视图中 3.下面的代码的约束是以父视图为基准点的 以下代码中:使用这种注释方式,可以为属性添加标注,option+左键查看,声明一个Bu