EasyConstraints 0.1.4

EasyConstraints 0.1.4

测试测试
语言语言 SwiftSwift
许可证 MIT
发布上次版本2015年9月
SPM支持 SPM

Bitomule 维护。



EasyConstraints

一套自定义 Swift 运算符,用于创建 NSLayoutConstraints。

为什么选择它?

有时您需要在代码中进行自动布局,而且很多时候这很糟糕。您需要使用带有超长方法的 NSLayoutConstraint,或者使用自动布局格式字符串。我想测试 Swift 自定义运算符,并且发现大量简单的自动布局约束代码让人很不舒服。通过这些简单运算符,我可以减少代码量,并在创建约束时清晰地了解自己在做什么。

安装

嵌入式框架需要 iOS 8 或 OS X Mavericks 或更高版本的最小部署目标。

易于理解

您只需要学习 3 个概念

<>

<> 表示约束关系中的第一个项目,相当于 NSLayoutConstraint 中的 item 参数。

*

* 表示相反。例如,在水平尾部关系中,“<><” 中的 * 表示垂直“*<><”。

<^>

<^> 表示顶部,因此如果您想使 view1 的顶部与 view2 的顶部对齐,您只需要“view1<^>(view2,0)”。而且,您说得对,“*<^>” 是底部!

如何使用

EasyConstraints 只包括一些约束,这是因为我最初将其作为一个学习项目。所有的运算符都接受一个视图和一个包含视图、常量以及可选的 NSLayoutRelation 参数的元组。如果需要定义不同的 NSLayoutRelation 来等于(默认),可以使用该参数。

以下是 EasyConstraints 现在包含的运算符

<^>

EasyConstraints

view1<^>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 0)

*<^>

EasyConstraints

view1*<^>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)

<<>

EasyConstraints

view1<<>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0)

<>>

EasyConstraints

view1<>>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0)

><>

EasyConstraints

view1><>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: 0)

<><

EasyConstraints

view1<><(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 0)

*><>

EasyConstraints

view1*><>(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Bottom, multiplier: 1, constant: 0)

*<><

EasyConstraints

view1*<><(view2,0)

使用 NSLayoutConstraint 构造函数

NSLayoutConstraint(item: view1, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view2, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 0)

感谢

也许您讨厌这个想法,喜欢它,或者想要创建一个 PR。任何反馈都受欢迎。