Swiftly
Swiftly 生成 Auto Layout 约束。
用法
要运行示例项目,只需运行 pod try swiftly
。或者,您可以克隆仓库并在示例目录中运行项目。
所有 UIView
和 UILayoutGuide
都响应 applyLayout
方法,该方法接受可变数量的 Swiftly
对象。提供的方便初始化器与所有 Apple 的 NSLayoutAttribute
类型配对。常见的组合布局类型 flush
、flushToMargins
、vertical
、horizontal
、center
和 size
也是可用的。
view.applyLayout(.centerX, .vertical, .width * 0.5)
安装
Cocoapods
Swiftly 可通过 CocoaPods 获取。安装它,只需将以下行添加到您的 Podfile 中:
pod "Swiftly"
Carthage
Swiftly 可通过 Carthage 获取。安装它,只需将以下行添加到您的 Cartfile 中:
github "Imperiopolis/Swiftly" ~> 2.0
Swift 版本
Swiftly 2.0 及更高版本需要 Swift 4.2。对于 Swift 的旧版本,请使用 Swiftly 1.0 构建版本。
自定义运算符
可以在 Swiftly
对象上使用运算符来生成修改后的布局。可用的运算符包括 ==
、<=
、>=
、+
、-
、*
、~=
和 /
。
view.applyLayout(.centerX, .top + 20, .width * 0.5, .height == 200)
设置优先级
可以配置 Swiftly
对象的优先级。
view.applyLayout(.centerY ~= UILayoutPriorityRequired)
视图关系
默认情况下,布局类型引用 superview
视图。要创建相对于兄弟视图的约束,请传递该视图作为参数。
view1.applyLayout(.left == .right(view2) + 5, .size(view2))
约束操作
applyLayout
方法返回一个生成 LayoutConstraint
对象的数组,可以在以后轻松地禁用或修改生成的约束。
let constraints = view.applyLayout(.size == 5, .center)
NSLayoutConstraint.deactivate(constraints)
...
NSLayoutConstraint.activate(constraints)
注意:任何在其上调用过applyLayout
的视图将自动将translatesAutoresizingMaskIntoConstraints
设置为false
,并且将生成的约束添加到其父视图中。
文档
请在此处阅读文档:here。
关于 Swiftly
Swiftly 由 @Imperiopolis 创建,旨在作为 Cartography(由 Robb Böhnke 创建)的一个轻量级版本。
Swiftly 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。