有没有一种简单的方法可以将故事板中已经定义的约束转换为 Swift 代码?

Is there an easy way to convert the constraints that are already defined in storyboard into Swift code?

我在 Storyboard 中设计了一个 ViewController 并分别调整了它的所有约束。

现在,我想为这些约束中的大部分设置动画。

所以:

  1. 我应该使用 Swift 代码重新定义它们
  2. 并编写一些代码来制作动画。

但是在 Swift 代码中再次定义约束非常烦人,而我已经在情节提要中有了它们。

所以,我希望有人能给我介绍一种自动实现此功能的简单方法。

不,没有将 IB 约束呈现为 Swift 代码的内置方法。您可以遍历它们并获取它们的所有属性并执行类似的操作,但这会变得混乱。有太多不同的方法可以通过编程方式创建约束,即使存在一些自动化工具,我敢打赌代码也不会很优雅。 (一般来说,以编程方式生成代码的工具不会生成非常好的代码。)

我想知道整个概念。我们经常在不经历所有这些的情况下对 IB 生成的约束进行动画处理。典型的方法是给这些 IB 约束 @IBOutlet 引用,然后您可以通过编程更改它们的 constant 值,然后在动画闭包中调用 layoutIfNeeded。或者,如果必须,您可以停用它们(再次使用插座),然后执行您想要的任何动画,并在适当的情况下在需要时重新激活这些约束。

但如果没有关于动画性质的更多详细信息,我们无法就如何在具有约束的 IB 视图中最好地实现动画提出建议。

但这是一个示例,说明如何以动画方式更改具有 IB 中定义的约束的视图的位置: