首页 > 代码库 > Masonry 一个约束第三方类库
Masonry 一个约束第三方类库
Masonry这个东东相当相当的牛掰,牛掰在哪呢,好用,相当的简单容易用。不愧为2000多个赞的第三方。
来让我们看看具体用法。
UIView *gr = UIView.new; gr.backgroundColor = [UIColor greenColor]; UIView *re = UIView.new; re.backgroundColor = [UIColor redColor]; UIView *ye = UIView.new; ye.backgroundColor = [UIColor yellowColor]; [self.view addSubview:gr]; [self.view addSubview:re]; [self.view addSubview:ye]; UIView *superView = self.view; [gr mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(superView.mas_left).offset(50); make.top.equalTo(superView.mas_top).offset(64+50); make.width.equalTo(@50); make.height.equalTo(@50); }]; [re mas_makeConstraints:^(MASConstraintMaker *make) { make.left.greaterThanOrEqualTo(gr.mas_right).offset(20); make.top.equalTo(superView.mas_top).offset(64+70); make.width.equalTo(gr.mas_width).multipliedBy(2); make.height.equalTo(gr.mas_height).multipliedBy(2); }]; [ye mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.equalTo(re).insets(UIEdgeInsetsMake(20, 10, 15, 20)); }];
还是配一张图作为效果来看看吧
先看图在看代码,简单易懂,定义三个颜色的视图,然后分别设定约束,block块里的就是约束,简单粗暴给力,除了一对一的设置,还可以用edge来一次设定视图约束,瞅瞅红色视图里包含的黄色视图就对了。
然后他能做啥,看看这个
基本包含了所有的枚举,然后在看看复合类型的:
看到这里基本上能用了。但是我们还可以继续探索一些其他的功能:
瞅瞅
MASConstraint
这个类,里面有很多block方法,都是用来获取约束对象的。具体功能请看API或者自己试试吧,哈哈。
说个上面用的
倍数约束multipliedBy,经常会需要根据屏幕尺寸来设定视图的size,那么这个可以帮助你搞定。
顺便说一下对于UIScrollView应该怎么布局
在约束UIScrollView
的时候,如果希望横向滚动,就必须在UIScrollView
的左右侧有约束。同样的,对于竖向滚动就必须在UIScrollView
的上下侧有约束。
另外有个方法mas_updateConstraints这个用来更新约束,约束更新了,问题出来了,必须得改变视图,那么可以采取做动画或者直接调用方法layoutIfNeeded:
[UIView animateWithDuration:0.3 delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{
[self.view layoutIfNeeded];
}completion:NULL];
天色已晚,有啥改天在写,看看demo,看看api,相信你能行的。。
感谢强大的作者
Masonry 一个约束第三方类库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。