CLAutoLayoutTemplates 0.1.0

CLAutoLayoutTemplates 0.1.0

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2014年12月

Elad Ben-Israel 维护。



基于模板创建 UIView 约束。

此库背后的概念是允许创建 Auto Layout 约束的 "模板",并在需要时(带动画或不带动画)将其应用到视图中。这是将所有 Auto Layout 定义保留在您的故事板或 nib 文件中的不错方法。

免责声明:此库引用了一个名为 NSContentSizeLayoutConstraint 的私有类(我们在从模板复制约束时将其过滤掉)。我正在提交一个包含此库的应用到 App Store。一旦我有证据表明这会导致拒绝,我将更新。

使用示例

一个常见的示例是使用 CLAutoLayoutTemplates 来动画化视图的框架更改。

例如,假设您有一个按钮 myButton,它使用 Auto Layout 声明了初始位置,并且您希望按钮移动到不同的位置,这您也希望使用 Auto Layout 声明。

使用 CLAutoLayoutTemplates,您可以创建第二个隐藏的 UIView,并在 Interface Builder 中为其定义适当的约束。这个隐藏的视图将是 templateView

然后,当您想要移动按钮时

func moveButton() {
  UIView.animateWithDuration(0.25) {
    self.view.replaceConstraintsForItem(self.myButton, usingTemplate:self.templateView)
    self.view.layoutIfNeeded()
  }
}

CLAutoLayoutTemplates 将用根据 templateView 所定义的所有约束生成的新约束替换 myButton 的约束。如您所见,我们将其放在动画块内,但这当然是可选的。

这有多么酷?

安装

作者

Elad Ben-Israel,[email protected]

许可

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