📐
SBEasyLayout
轻松布局视图!您将在短时间内以编程方式编写约束。
首先,感谢 John Sundell (@johnsundell) 的“在 Swift 中构建 DSL”帖子。它允许以更有效和更简单的方式使用自动布局功能。
安装
EasyLayout 可通过 CocoaPods 获取。要安装它,只需将以下行添加到 Podfile 中
pod 'SBEasyLayout'
示例
有几个用法示例
NSLayoutAnchor
label.layout {
$0.top == view.topAnchor + 5
$0.leading == view.leadingAnchor + 5
$0.trailing == view.trailingAnchor - 5
}
button.layout {
$0.centerX == view.centerXAnchor
$0.centerY == view.centerYAnchor
}
label.layout {
$0.top == button.bottomAnchor + 20
$0.leading == button.leadingAnchor
$0.width <= view.widthAnchor - 40
}
NSLayoutDimension
view.layout {
$0.width == 100
$0.height == 100
}
或
view.layout {
$0.width <= view.widthAnchor - 40
$0.height <= view.heightAnchor - 50
}
或
使用乘数和常数
view.layout {
$0.width <= (view.widthAnchor, 1.0, 1.0)
}
除此之外,如您所见,我们有一系列操作符来表示 Apple 的 NSLayoutAnchor API 的一些方法,例如:constraint(greaterThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint
,constraint(lessThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint
您可以在下面看到它们。
NSLayoutAnchor 操作符及等价函数
操作符 | 实际方法 |
---|---|
== | constraint(equalTo anchor: Self, constant: CGFloat) -> NSLayoutConstraint |
>= | constraint(greaterThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint |
<= | constraint(lessThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint |
NSLayoutDimension 操作符及等价函数
操作符 | 实际方法 |
---|---|
== | constraint(equalToConstant: CGFloat) -> NSLayoutConstraint |
>= | constraint(greaterThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint |
<= | constraint(lessThanOrEqualToConstant: CGFloat) -> NSLayoutConstraint |
== | constraint(equalTo: Self, multiplier: CGFloat, constant: CGFloat) -> NSLayoutConstraint |
>= | constraint(greaterThanOrEqualTo: Self, multiplier: CGFloat, constant: CGFloat) -> NSLayoutConstraint |
<= | constraint(lessThanOrEqualTo: Self, multiplier: CGFloat, constant: CGFloat) -> NSLayoutConstraint |
此外,您还可以轻松地将视图固定到父视图的边缘。
view.fillSuperview()
许可证
EasyLayout 在 MIT 许可下发布。有关更多信息,请参阅 LICENSE.md。