整完Cocoapods后,博主又马不停蹄的学习了Masonry的代码约束添加,博主喜欢纯代码,不过以前一直都是相对布局,虽然Masonry出了时间不短了,却一直没有学,所以学习这个也是顺应时代潮流吧,用了之后确实感觉挺好用的。

但是博主在使用中遇到了mas_equalTo和equalTo这两个属性,有啥区别?网上一查都没有很明确的说明是干啥,给我把类别里的宏定义夫指出来接个意思?后来博主自己看了下,equalTo的类型为id,里面不能直接填数字,如果非要填,需要这么填:

make.width.equalTo(@100);

否则会报错。

而mas_equalTo填的啥?

make.width.mas_equalTo(100);

直接就是数字,而且看宏定义,mas_equalTo是对参数进行转化后得到匹配的参数,所以,综上可以看出,mas_equalTo和equalTo实际上是一样的,只是各自类型不一样。如果你要直接写数字,上面的两种办法都是可行的。如果是

make.left.equalTo(gray1.mas_right);

这样,需要equalTo,ma s_equalTo不可。

另外self一定要宏定义为weak:

#define WS(weakSelf)  __weak __typeof(&*self)weakSelf = self;

除此还有其他的比较好玩的属性,初学者理解起来还是存在偏差的,如果你刚好看到这篇博客,如果你还有地方不理解,请留言。

关于Masonry有很多种写法,根据个人习惯不同,使用这两种方法,但是很多时候效果是一样的。即使全用mas_equalTo或equalTo也行,目前按照上面说的方法使用暂未发现两者出错,博主会不断补充。
补充说明:
1.mas_equal可以添加非数字:

make.top.mas_equalTo(lastView.mas_bottom);

但是equal想要添加数字却要加@。