炫舞ET官网 | 设为首页 | 加入收藏 | 网站地图
当前位置:主页 > 炫舞新闻 > 正文

Masonry的使用思考

发布人:瑛 时间:2016-6-13 14:15:50
今天我想写一下关于对Masonry的使用总结不得不说Masonry确实非常好用好用好用好用到爆!!!在使用之前请查看Masonry的基本用法作者在Github上的链接Masonry的使用
0.Masonry的使用总图
Snip20160606_11.png1.我们首先搭建环境和使用cocoaPods加载Masonry到你的工程中
Snip20160606_8.png2.练习开始:左上角放一个100*100的正方形的view我们开始导入框架和实现
2.1我们的要实现的目标,看图说话
Snip20160606_9.png2.2代码:#importViewController.h#importMasonry.h@interfaceViewController@propertyUIView*v1;@end@implementationViewController-viewDidLoad{[superviewDidLoad];[selfdemo01];}-demo01{UIView*view1=[[UIViewalloc]init];view1.backgroundColor=[UIColorredColor];[self.viewaddSubview:view1];self.v1=view1;[view1mas_makeConstraints:^{make.left.top.mas_equalTo;make.size.mas_equalTo);}];}
3.实现在view两侧各有一个100*100的view3.1看图说话实现的具体
Snip20160606_10.png3.2代码实现#importViewController.h#importMasonry.h@interfaceViewController@propertyUIView*v1;@propertyUIView*v2;@end@implementationViewController-viewDidLoad{[superviewDidLoad];[selfdemo01];}-demo01{UIView*view1=[[UIViewalloc]init];view1.backgroundColor=[UIColorredColor];[self.viewaddSubview:view1];self.v1=view1;[view1mas_makeConstraints:^{make.left.top.mas_equalTo;make.size.mas_equalTo);}];UIView*view2=[[UIViewalloc]init];view2.backgroundColor=[UIColorblueColor];[self.viewaddSubview:view2];self.v2=view2;[view2mas_makeConstraints:^{make.top.mas_equalTo;make.right.mas_equalTo;make.size.mas_equalTo);}];}
4.重点!!!!4.1实现的现象当我点击屏幕的时候黄色的view向右边运动
masonry.gif4.2大家可以想想怎么实现那??根据我的能力水平我可以想到的是
1.使用mas_remakeConstraints:^先去去掉我们以前所有的约束设置,重新设置约束!!
在Masonry中有一个更新约束的机制是:
ViewA的某个约束从相对与ViewB更改到相对于ViewC的ViewA的某个约束从相对于某个View给成具体的数值
这两种情况我们需要卸载以前约束,设置一个新的约束.4.3我们使用mas_remakeConstraints来实现#importViewController.h#importMasonry.h@interfaceViewController@propertyUIView*v1;@propertyUIView*v2;@propertyUIView*v3;@propertyMASConstraint*cons;@end@implementationViewController-viewDidLoad{[superviewDidLoad];[selfdemo01];}-demo01{UIView*view1=[[UIViewalloc]init];view1.backgroundColor=[UIColorredColor];[self.viewaddSubview:view1];self.v1=view1;[view1mas_makeConstraints:^{make.left.top.mas_equalTo;make.size.mas_equalTo);}];UIView*view2=[[UIViewalloc]init];view2.backgroundColor=[UIColorblueColor];[self.viewaddSubview:view2];self.v2=view2;[view2mas_makeConstraints:^{make.top.mas_equalTo;make.right.mas_equalTo;make.size.mas_equalTo);}];UIView*view3=[[UIViewalloc]init];view3.backgroundColor=[UIColoryellowColor];[self.viewaddSubview:view3];self.v3=view3;[view3mas_makeConstraints:^{make.top.mas_equalTo.offset;self.cons=make.left.mas_equalTo;make.size.mas_equalTo);}];}-touchesBegan:toucheswithEvent:event{[self.v3mas_remakeConstraints:^{make.top.mas_equalTo.offset;self.cons=make.left.mas_equalTo;make.size.mas_equalTo);}];[UIViewanimateWithDuration:2animations:^{[self.viewlayoutIfNeeded];}completion:^{[UIViewanimateWithDuration:2animations:^{[self.v3mas_remakeConstraints:^{make.top.mas_equalTo.offset;self.cons=make.left.mas_equalTo;make.size.mas_equalTo);}];[self.viewlayoutIfNeeded];}];}];}4.4使用mas_updateConstraints完成数据的循环#importViewController.h#importMasonry.h@interfaceViewController@propertyUIView*v1;@propertyUIView*v2;@propertyUIView*v3;@propertyMASConstraint*cons;@end@implementationViewController-viewDidLoad{[superviewDidLoad];[selfdemo01];}-demo01{UIView*view1=[[UIViewalloc]init];view1.backgroundColor=[UIColorredColor];[self.viewaddSubview:view1];self.v1=view1;[view1mas_makeConstraints:^{make.left.top.mas_equalTo;make.size.mas_equalTo);}];UIView*view2=[[UIViewalloc]init];view2.backgroundColor=[UIColorblueColor];[self.viewaddSubview:view2];self.v2=view2;[view2mas_makeConstraints:^{make.top.mas_equalTo;make.right.mas_equalTo;make.size.mas_equalTo);}];UIView*view3=[[UIViewalloc]init];view3.backgroundColor=[UIColoryellowColor];[self.viewaddSubview:view3];self.v3=view3;[view3mas_makeConstraints:^{make.top.mas_equalTo.offset;self.cons=make.left.mas_equalTo;make.size.mas_equalTo);}];}//MARK:我们使用mas_updateConstraints-touchesBegan:toucheswithEvent:event{[UIViewanimateWithDuration:2animations:^{[self.v3mas_updateConstraints:^{[self.consuninstall];self.cons=make.left.equalTo;}];[self.viewlayoutIfNeeded];}completion:^{[UIViewanimateWithDuration:2animations:^{[self.v3mas_updateConstraints:^{[self.consuninstall];self.cons=make.left.equalTo;}];[self.viewlayoutIfNeeded];}];}];}代码下载地址:我的github
如果有问题请留言.如果感觉喜欢,或者有任何疑问请留言或者加我qq

本文章由 明升国际 的作者提供

推荐阅读

《十岁小女孩想要一只左耳》追踪找耳朵的小海燕引关注
羊绒大衣加盟选择是成功第一步
尖峰集团:2015年年度报告摘要
女孩屋顶晾衣失踪19岁少女失踪已有7天疑点重重
宠物行业竞争风起云涌看各大商家如何放大招迎挑战(组...
2016年湖南郴州资兴经济开发区园区招聘公告
大国博弈使叙和解进程曲折难行
24小时国内要闻TOP10:我国开工建设亚洲最长地铁车站