之前错误的用法
make.top.equal(self.mas_top).offset(self.view.frame.size.height/10);
没入职之前,一直认为Masonry约束布局不应该有具体的数值,其实是我的理解出了问题,因为在学校里,没有UI,写的demo的UI是自己摸索,为了适配多种机型,我采用的了等比放大/缩小的方式来写布局,这写法是不对,屏幕并不是按比例扩大和缩小的,我们也不能按比例的去规定。
正确做法:
一般呢会给俩套UI,小屏和大屏,这俩套UI中有些东西的大小是定死的,比如 头像的大小,那我们就可以给它一个钉死的值。有些虽然大小不定,但也可以通过巧妙的方式去固定。比如label的高度和长度。
大屏上,label高20,长100,字体是20,小屏上label高15,长70,字体是13(举个例子)。他们都是距左16,距上5(这俩个值一般大小屏是一致的)
在布局的时候我们大可以这样布局:
make.top.equal(self.mas_top).offset(5);
make.left.equla(self.mas_left).offset(16);
make.size.mas_equal(CGSize(100,20));
大小屏长宽一致,设置左对齐,改变字体大小即可。
或者说你还是想分开写,可以用三项表达式来写,而不要用ifelse。