主业iOS/PHP,副业啥都玩,QQ:705719110,欢迎来撩!

iOS自动布局之Masonry第一弹

iOS开发 随风 109℃ 0评论

说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,xib上各种约束,不利于维护,还很不利于协作开发。对于后者,到处计算高度、宽度等,千万大量代码的冗余,对维护和开发的效率都很低。所以我们在这里介绍纯代码自动布局的第三方库:Masonry。这个库是基于AutoLayout的,它的使用率相当高,在全世界都有大量的开发者在使用。

首先来看一下官方的使用案例:

或者直接使用链式操作

这操作比起autolayout繁重的代码量是不是觉得很清新,很简单~

我们来看一下 Masonry 里的一些属性和方法

masonry property

再看一下属性与NSLayoutAttrubute的对照表

masonry autolayout

其中leading与left trailing与right 在正常情况下是等价的 但是当一些布局是从右至左时(比如阿拉伯文?没有类似的经验) 则会对调 换句话说就是基本可以不理不用 用left和right就好了
我们常用的在Masonry中能够添加autolayout约束有三个函数

下面我们看一个简单的基础例子

效果如下,我们这里用到了一个三方库 MMPlaceHolder ,能够显示view的大小,有利于我们调试。

Masonry 000

我们这里用到了 equalTo 和 mas_equalTo,他们的区别可以从源代码中看出

可以看到 mas_equalTo只是对其参数进行了一个BOX操作(装箱) MASBoxValue的定义可以在源代码中纤细看到 ,所支持的类型 除了NSNumber支持的那些数值类型之外 就只支持CGPoint CGSize UIEdgeInsets。

下面在看几个例子

看一下效果

Masonry 002

看一下效果

Masonry 003

看一下效果,要说一下就是这里的关键就在于container这个view起到了一个中间层的作用 能够自动的计算uiscrollView的contentSize

头部

Masonry 004

尾部

Masonry 005

代码请查看 http://git.oschina.net/zcb1603999/DCTest

转载请注明:怼码人生 » iOS自动布局之Masonry第一弹

喜欢 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址