Drafter 1.0.0

Drafter 1.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年5月
SPM支持SPM

Matt BuckleyAlex Rouse维护。



Drafter 1.0.0

  • Derek Ostrander 和 Matt Buckley

Drafter

Drafter是一组围绕创建和访问NSLayoutConstraints的简单封装调用,使得在程序化创建它们时更简洁。它允许以比标准NSLayoutConstraint创建方法更简洁的方式表达许多常见的约束创建操作。

要运行示例项目,首先克隆存储库,然后在示例目录中运行pod install

用法

确保您导入了Drafter模块。import Drafter

这些方法都是UIView上的一个类别,因此您需要在想要影响的视图中调用这些方法。

访问

目前,所有对约束的访问都通过变量接口呈现。它们遍历适当的约束,找到正确的正确一个。

固定容器约束

view.pinedLeftConstraint
view.pinnedRightConstraint
view.pinnedTopConstraint
view.pinnedBottomConstraint

大小约束

// Note these only access height constraints that are to a constant, not bounded to a view.
view.pinnedHeightConstraint
view.pinnedWidthConstraint

即将推出

  • 最大和最小大小约束访问
  • 最大和最小固定填充约束访问

创建

所有创建方法都有可选项参数
active,默认true priority,默认UILayoutPriorityRequired
除非另有说明,否则它们都返回NSLayoutConstraint

将边缘固定到容器

将视图边缘各自与其容器固定。如果调用者没有superview则会导致崩溃。固定方法有一个可选参数padding,默认0.0

view.pinTopSpaceToContainer()
view.pinLeftSpaceToConainer()
view.pinRightSpaceToContainer()
view.pinBottomSpaceToContainer()

填充方法是针对简化使用而大规模固定到容器的功能
填充有一个可选参数insets,默认UIEdgeInsetsZero

// NOTE: This method returns a named tuple mimicking `UIEdgeInsets` but with constraints
view.fillContainer()

在容器中居中

居中接口与锚点类似,但它基于你指定的轴进行居中。如果没有指定轴,它将在两个维度上居中。如果没有调用者具有 superview,则可能会失败。
居中约束有一个可选参数 offset。默认值为 0.0

view.centerInContainer(.Horizontal)
view.centerInContainer(.Vertical)


// NOTE: This method returns a named tuple mimicking `CGPoint` but with constraints
view.centerInContainer() 

设置大小(宽度,高度)

您可以直接设置视图的大小,或者将其绑定到另一个视图。
视图绑定函数有一个可选参数 multiplier。默认值为 1.0

view.pinHeight(toView: v)
view.pinHeight(toHeight: h)
view.pinWidth(toView: v)
view.pinWidth(toWidth: w)

// NOTE: This method returns a named tuple mimicking `CGSize` but with constraints.
// this method doesn't take a multiplier
view.pinSize(toSize: s)

对齐和附件视图

此接口要求你传递希望对其对齐的调用者的视图。我们不强制定义的两个视图位于同一继承层次中,因此你必须对此格外小心。
这些有一个可选参数 offset。默认值为 0.0

view.alignLeft(toLeftOfView: v)
view.alignRight(toRightOfView: v)
view.alignBottom(toBottomOfView: v)
view.alignTop(toTopOfView: v)

view.attachLeft(toRightOfView: v)   
view.attachRight(toLeftOfView: v)
view.attachBottom(toTopOfView: v)   
view.attachTop(toBottomOfView: v)

// NOTE the following return an array of constraints
// these have an optional param realtion. Default .Equal
view.align(subviews: vs, attribute: NSLayoutAttribute)
view.space(subviews: vs, alongAxis: UILayoutConstraintAxis,
            isPositive: true) // optional: defaults to true 

即将推出

  • 最小/最大大小约束
  • 到容器的小/最大内边距

作者

github: @mattThousand,电子邮件:[email protected],twitter: @mattThousand
github: @dostrander,电子邮件:[email protected],twitter: @_derko

许可

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