测试已测试 | ✗ |
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 文件。