ConstraintKit 使得在 iOS 中使用 Swift 和 Objective-C 简单地激活、禁用和更新布局约束。它智能地禁用参与自动布局的视图的 translatesAutoresizingMaskIntoConstraints
,让您无需存储对已安装约束的引用即可更新它们,并让用户通过一行代码激活单个约束,但它的最强大的功能是允许用一行代码定义整个视图的布局。
假设你已经在你视图控制器的主视图中添加了一个视图,并希望它在顶部和底部布局指南之间填满整个视图。这里是如何使用 ConstraintKit 和 Swift 实现这一点的…
newView.clk_edgesAnchor.constraintsEqualTo(self).activate()
…以及 Objective-C
[[[newView clk_edgesAnchor] constraintsEqualToViewController:self] activate];
假设你想给你的新视图添加边距。只需创建一个 UIEdgeInsets
定义边距,并在激活约束时使用它
newView.clk_edgesAnchor.constraintsEqualTo(self).with(insets).activate()
…以及 Objective-C
[[[newView clk_edgesAnchor] constraintsEqualToViewController:self] withConstant:insets priority:UILayoutPriorityRequired];
ConstraintKit 的一个优点是,如果您已经安装了相似的约束,它将更新它们以实现您的新设置。当然,如果您想安装具有不同优先级的多个相似约束,您可以禁用此功能。
当 ConstraintKit 激活约束时,它始终返回它激活的约束,以防您想保留对这些约束的引用。在许多情况下,您不需要这样做,因为 ConstraintKit 在可能的情况下会智能地更新现有的约束。
您还可以使用 ConstraintKit 智能地激活、禁用和更新单个约束,无论它们是如何创建的。只需在 NSLayoutConstraint
上使用 clk_activate
扩展即可。
ConstraintKit 确保始终关闭适当视图的 translatesAutoresizingMaskIntoConstraints
。
ConstraintKit 采用 MIT 许可证。