使用SnapKit编写自动布局约束

当最终使用Auto Layout开发UI时,您可以选择在Interface Builder中布置视图和/或以编程方式编写约束。 两种方法都不总是比另一种更好。 使用IB确实很方便-无需输入所有布局代码,它就可以大大减少开发时间。 但是有些人(包括我本人)经常喜欢用代码编写大多数约束,因为他们发现调整,调试和重用布局更容易。 而且,除非您有明确的流程,否则尝试与故事板文件上的开发人员团队并行工作可能会成为Git Nightmare™。

但是,如果您以编程方式进行了大量布局,也许您已经注意到NSLayoutConstraint的API可能很冗长。 是否曾经在代码中完全实现过复杂的UI? 最终它有多少LOC? 大概很多! 一般来说,代码越少越好吧?

如果有一个更简单,更快的方法来编写布局约束,那将是很好的。

SnapKit简介

从GitHub页面

SnapKit是一种DSL,可在iOS和OS X上简化自动布局。

SnapKit本质上是用于编写约束的语法糖。 它通过UIView / NSView类上公开的’snp’属性提供了很高的抽象水平,允许您使用简洁的闭包语法在视图上定义约束,然后让SnapKit负责其余的工作。 它可以使您的布局代码清晰,简洁。 真的很简洁。 只要看看将UITableView约束到其超级视图的所有四个方面是多么容易。

这是使用原始NSLayoutConstraint API的相同代码。

这是另一个示例,将视图集中在屏幕上。

我们可以利用SnapKit的一些便捷方法和链接约束的能力来略微缩短此时间。

很酷。 如您所见,SnapKit非常直观且易于使用。 查看文档以获取更多示例。

不确定SnapKit是否适合生产中的应用程序,我不确定—好像存在一些内存泄漏问题,也许不是吗?

尽管如此,SnapKit是一个很棒的库,只是因为它变得更好,所以我建议您检查一下。