ZLayout 1.0.1

ZLayout 1.0.1

测试已测试
Lang语言 SwiftSwift
许可 MIT
发布最后发布2017年10月
SwiftSwift 版本4.0
SPM支持 SPM

fanticqq 维护。



ZLayout 1.0.1

  • fanticqq


Swift 的一个轻量级布局视图框架。

示例

要运行示例项目,克隆仓库,然后首先从 Example 目录运行 pod install

锚定

要相对于父视图放置视图,可以使用锚定。最简单的示例是锚定到父视图的中心。

view1.anchor(toParentEdge: .centerParent, width: 50, height: 50)

anchorCenter Example

要填充父视图,可以使用名为 .all 的 ZLayoutEdge 的特定情况。在这种情况下,将忽略宽度和高度参数。

view1.anchor(toParentEdge: .all, inset: UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5))

superView Example

您也可以通过为宽度和高度使用 .superView 值来完成相同的操作。

centerView1.anchor(toParentEdge: .centerParent, width: .superView, height: .superView, inset: UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5))

重力意味着角落,默认情况下将居中,但您可以选择以下之一
.center.top.bottom.left.right

view1.anchor(toParentEdge: .left, width: 50, height: 50, offset: CGPoint(x: 5, y: 0))
view2.anchor(toParentEdge: .right, width: 50, height: 50, offset: CGPoint(x: -5, y: 0))
view3.anchor(toParentEdge: .top, width: 50, height: 50, offset: CGPoint(x: 0, y: 5))
view4.anchor(toParentEdge: .bottom, width: 50, height: 50, offset: CGPoint(x: 0, y: -5))

superView Example

对齐

另一种布局视图的方法是相对于另一个视图对齐视图。

view1.align(on: .leftOffset(20), relativeTo: centerView, withGravity: .top, width: 80, height: 30)
view2.align(on: .leftOffset(20), relativeTo: centerView, withGravity: .center, width: 80, height: 30)
view3.align(on: .leftOffset(20), relativeTo: centerView, withGravity: .bottom, width: 80, height: 30)
view4.align(on: .rightOffset(20), relativeTo: centerView, withGravity: .top, width: 80, height: 30)
view5.align(on: .rightOffset(20), relativeTo: centerView, withGravity: .center, width: 80, height: 30)
view6.align(on: .rightOffset(20), relativeTo: centerView, withGravity: .bottom, width: 80, height: 30)
view7.align(on: .topOffset(20), relativeTo: centerView, withGravity: .left, width: 30, height: 80)
view8.align(on: .topOffset(20), relativeTo: centerView, withGravity: .right, width: 30, height: 80)
view9.align(on: .topOffset(20), relativeTo: centerView, withGravity: .center, width: 30, height: 80)
view10.align(on: .bottomOffset(20), relativeTo: centerView, withGravity: .left, width: 30, height: 80)
view11.align(on: .bottomOffset(20), relativeTo: centerView, withGravity: .right, width: 30, height: 80)
view12.align(on: .bottomOffset(20), relativeTo: centerView, withGravity: .center, width: 30, height: 80)

Alignment Example

您还可以通过 alignAndFill 方法在对齐后将视图拉伸到另一个视图。

view1.anchor(toParentEdge: .top, width: .superView, height: 20)
view2.anchor(toParentEdge: .bottom, width: .superView, height: 20)
view3.alignAndFill(on: .bottomOffset(5), relativeTo: topView, withGravity: .center, stretchTo: bottomView, trailingPadding: 5, size: 20)

这里的大小意味着宽度或高度,它取决于对齐类型。

Alignment Example

许可

ZLayout 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。