Strutter 0.1.0

Strutter 0.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布上次发布2015年11月
SPM支持 SPM

Maintained by Alex Pretzlav.



Strutter 0.1.0

Strutter

Strutter 是一个 Swift µ Framework,用于使用一些自定义中缀运算符定义 AutoLayout 约束。它使用 iOS 9 / OS X 10.11 的 NSLayoutAnchor 系统来定义这些约束。

为了向后兼容,有一个名为 OALayoutAnchor 的 subspec 和一个名为 Strutter iOS OALayout 的备用框架,它使用 OALayoutAnchor 而不是 NSLayoutAnchor。这个版本适用于 iOS 8。

Strutter 使用自定义运算符 |=||>=||<=| 来定义两个 NSLayoutAnchors 之间的相等、大于等于和小于等于约束。苹果的文档 解释了 NSLayoutAnchor 的工作原理。

Strutter 会自动激活约束并禁用左侧视图的 translatesAutoresizingMaskIntoConstraints 属性。它不会自动禁用两个视图,因此视图控制器和导航栏的子视图定位按预期工作。

由于 Strutter 只是在 NSLayoutAnchor 方法之上的语法糖,因此它保留了由 NSLayoutAnchor 强制执行的类型安全性,防止创建无效的约束,例如维度和位置度量之间的约束。

安装

Strutter 支持 Cocoapods 和 Carthage。

如何操作

这个详细的数据块将 iOS 8 中一个视图的右侧边缘与另一个视图的左侧边缘对齐

NSLayoutConstraint(item: view1,
    attribute: .Trailing,
    relatedBy: .Equal,
    toItem: view2,
    attribute: .Leading,
    multiplier: 1,
    constant: 0).active = true

使用布局锚点可以将它缩短为以下内容

view1.trailingAnchor.constraintEqualToAnchor(view2.leadingAnchor).active = true

Strutter 进一步将其缩短为

view1.trailingAnchor |=| view2.leadingAnchor

Strutter 表达式的值是创建的约束,因此创建后如果需要可以将其停用

let constraint = view1.trailingAnchor |=| view2.leadingAnchor
constraint.active = false

常量和乘数

Strutter 允许通过元组指定常量和/或多乘数

subview.topAnchor |=| (superview.topAnchor, 10)

等同于

subview.topAnchor.constraintEqualToAnchor(
    superview.topAnchor, constant: 10).active = true
// or
NSLayoutConstraint(item: subview, 
    attribute: .Top, 
    relatedBy: .Equal, 
    toItem: superview, 
    attribute: .Top, 
    multiplier: 1, 
    constant: 10).active = true

subv.heightAnchor |=| (v.heightAnchor, multiplier: 2, constant: -20)

等同于

subv.heightAnchor.constraintEqualToAnchor(
    v.heightAnchor, multiplier: 2, constant: -20)

不等式

定义小于和大于属性

subv.heightAnchor |<=| v.heightAnchor

等同于

subv.heightAnchor.constraintLessThanOrEqualToAnchor(v.heightAnchor)

固定值

最后,Strutter 允许对维度轴进行常数值约束

subv.heightAnchor |=| 200

等同于

subv.heightAnchor.constraintEqualToConstant(200)

游乐场

请查看这个游乐场,它演示了 basic Strutter 语法。要使用它,打开 Strutter.xcworkspace 项目的 Strutter iOS 架构,以 iPhone 5s 模拟器或更新的为目标构建,并在项目导航器中选择 Example.playground

许可证

Strutter 使用 MIT 许可证发布。我们欢迎贡献。