本周学习了Masonry,我感觉他就是用来设置view的大小及所处位置,以整个屏幕为参照,所以可以做到适配任何屏幕大小
文章参考https://www.jianshu.com/p/587efafdd2b3
用Masonry写的demo的github链接https://github.com/puyuerong/Masnory
主要用到三种约束:
- 添加约束
mas_makeConstraints() - 移除之前的约束,重新添加新的约束
mas_remakeConstraints() - 更新约束,写哪条更新哪条,其他约束不变
mas_updateConstraints()
用到的约束
- 设置边距
- make.left.equalTo(self.view).with.offset(10);
make.top.equalTo(self.view).with.offset(10);
make.right.equalTo(self.view).with.offset(-10);
make.bottom.equalTo(self.view).with.offset(-10); - 这样写下、右不需要写负号,insets方法中已经为我们做了取反的操作了。
make.edges.equalTo(self.view).with.insets(UIEdgeInsetsMake(10, 10, 10, 10)); - 设置长宽
make.center.equalTo(self.view);
make.width.mas_equalTo(100);
make.height.mas_equalTo(100);
这种可以通多设置屏幕的倍数设置大小,一下语句表示宽度是屏幕宽度的0.2倍
make.width.equalTo(self.view).multipliedBy(0.2);
注意 :在使用Masonry添加约束之前,需要在addSubview方法之后才能使用,否则会导致崩溃。
- make.left.equalTo(self.view).with.offset(10);