IOS之Masonry小结

作者: 謝灰灰在找胡蘿蔔 | 来源:发表于2015-06-16 21:31 被阅读3733次

    虽说自己不爱用代码写view,但是上班的时候不让你用storyboard啊,尼玛全代码,真是要了我的命。

    不得已,用了大名鼎鼎的masonry来写autolayout。

    的确,相比ios自带的autolayout的API来说,masonry的确简单了很多,但是也很复杂啊,好不好!!!!

    内心真的是极度的狂暴。

    为UI控件添加约束时,主要会用到masonry里面的三个函数

    masonry_makeConstraints (添加约束)

    masonry_updateConstraints(更新约束)

    masonry_remakeConstraints(删除所有约束后,重新添加约束)

    里面觉得最好用的是masonry_remakeConstraints,保证不会错,不过要记得将约束写在

    - (void)updateConstraints

    里面,然后调用

    [self setNeedsUpdateConstraints];

    [self updateConstraintsIfNeeded];

    [self layoutIfNeeded];

    这一串,否则不会更新。

    有兴趣的自己去谷歌百度原理,这里不解释(其实我也说不清。。。。反正更新约束就要调用这几个方法blah blah blah)

    不过使用masonry_makeConstraints的时候不需要啦。如果界面搭好之后不会变动的话就用这个就行。

    接下来

    这几个函数中就可以添加你UI控件的约束了。大概长这个样子

    [view1mas_makeConstraints:^(MASConstraintMaker *make) {   

     make.top.equalTo(superview.mas_top).with.offset(padding.top);

    make.left.equalTo(superview.mas_left).with.offset(padding.left);    

    make.bottom.equalTo(superview.mas_bottom).with.offset(-padding.bottom);    

    make.right.equalTo(superview.mas_right).with.offset(-padding.right);

    }];

    //masonry的github上的例子

    还是挺不浅显易懂的。

    自己下下来多用几次就能意会了,说多了看着也累,还是动手比较好。

    有兴趣的朋友点击这里下载去 masonry的github地址

    尼玛,算是第一篇跟开发相关的笔记了,虽然真的很水0.0

    相关文章

      网友评论

      • 舒马赫:Masory写的很棒,但是不喜欢纯代码写界面,太慢了,另外由于autolayout先天原因布局速度是比较慢的,会影响帧率。推荐使用xml的布局库FlexLib,采用前端布局标准flexbox(不使用autolayout),支持热刷新,自动计算高度等。可以到这里了解详细信息:

        https://github.com/zhenglibao/FlexLib
      • Jackchen_陈:浪费流量
      • Mr卿:加油加油
      • 18da21662e02:垃圾
        juefeiye:确实没有素质
        da2343deb340:老子看过你的所有评论,原来你他妈就是个喷子!还当程序员,回去干你妈去!!傻逼喷子!
        da2343deb340:觉得垃圾你他妈还看完了,还评价了,看你妈卖批吗?
      • 温暖的男人:果然很水

      本文标题:IOS之Masonry小结

      本文链接:https://www.haomeiwen.com/subject/ollsqttx.html