title:我在iOS开发中用过的第三方库

date:2019-04-20 22:36:51

本人萌新一枚,在iOS开发中会碰到很多的问题。所以自己借助HEXO搭建了一个博客,用来记录自己工作中遇到的一些问题。算是对自己的总结,也算是一种分享吧。
iOS开发中并不是所有事情都要自己亲力亲为的,借助于一些好用的第三方库,我们很容易就能够实现一些炫酷的功能,可以说是既省事又高效啊。下面就说说到目前的工作阶段我经常使用的一些库吧。

  1. 页面需要布局,你肯定不能把所有的坐标和尺寸都写死。你就需要掌握自动布局的使用。苹果官方也有自动布局的实现方式,可是使用起来一点也不人性化,代码会很冗长而且可读性也不够强。这时候就能用到一个叫做Masonry的第三方布局库了。采用的链式语法不但清晰易懂,而且使用起来也是极其的方便的。掌握好了的话,能为自己省去很多烦心事情呢。下面就说说使用方式:robertjpayne
    在github官网上作者介绍了Masonry的使用,要不先来说说这个单词怎么读吧。这个单词的美式读法是 [ˈmeɪsənri] 也就是“没涩呢瑞”哈哈,原谅我这样子记忆他。在官网作者介绍说masonry是一个轻量级的布局框架,他用一种更友好的方式封装了苹果自己提供的AutoLayout。Marsonry拥有自己的布局方式(DSL),你可以用一种链条式的语法来描述你的NSLayoutConstraints,用这样一种语法的好就是可以提高你用来布局代码的可读性和简洁性。Masonry是支持iOS和MacOS两个平台的。
    那么What’s wrong with NSLayoutConstrains? 作者在介绍Masonry之前是这么描述的,翻译过来就是说苹果官方的NSLayoutConstrains有什么罪过呢?在组织和铺设视图方面,自动布局是一种有力并且灵活的方式。然而以苹果官方的方式创建约束的代码是啰嗦的和描述不清的。想想一个简单的场景,你想有一子视图充满你的父视图,并且四周要和父视图之间留出来10个像素点的空间。即便是这样一个简单的例子需要的代码就已经非常的啰嗦和可读性很差了。更别提再加两个或者三个视图上去了。另一种可供选择的方式是使用Visual Format Language (VFL),这种方式使用的代码是要少一点了。然而呢,这种ASCII类型的语法也有他自己的缺陷,并且他依旧不是很容易让人理解。
    经历了这么多的困难,准备好让上帝来拯救你吧。这里有和上面相同的约束要求,但是是用MASConstraintMaker创建的,惊叹吧,甚至他可以更短。但是需要注意的一点是,我们已经给子视图的父视图添加了约束。Masonry 会自动的添加约束到合适的视图上去的。使用Masonry之前,需要你调下面的语法view1.translatesAutoresizingMaskIntoConstraints = NO;
    不是所有的约束都是等于的,刚好合适的。
    Where should I create my constraints? 那么我创建的约束应该放在那里呢?