我可以在界面生成器中创建一个布局约束,然后将其应用于多个控件吗



我可以在接口生成器中创建一个布局约束,然后将其应用于多个控件吗?我的意思是只使用接口生成器,而不编写代码。

现在,界面生成器工作流程首先将一些控件拖动到视图控制器,然后对它们应用约束。但一些约束,如超视图的宽度、高度、前导和尾部空间,可以应用于多控件。更改该约束将影响所有应用它的控件。就像将css应用到html组件一样。我认为如果xcode的接口构建器能够提供这样的功能,也许有时会更有效。

不能将同一约束应用于多个视图。然而,您可以通过仔细创建约束来实现"级联"约束(因此,您可以在接口生成器中调整一件事,其他一切都会移动)。

假设你有一堆按钮,你希望它们的宽度和左/右对齐。在顶部按钮上创建一个约束,将其固定到超级视图的边缘,然后创建另一个约束并赋予其特定宽度。

对于堆栈中的其他按钮,不要创建宽度和位置约束,只需将按钮的左边缘和右边缘固定到上面按钮的左边和右边缘即可。这样,整个堆栈将遵循您对顶部按钮所做的任何更改。

另一种选择是使用容器视图,并在容器视图上设置位置和大小约束,只需将子视图固定到边上。最好的方法取决于你想要达到的最终布局。

您可能想了解更多关于自动布局的信息。不能在IB中创建所有可能的约束。约束是对象,但不能更改与它们相关的视图。它们是不可变的。您可以在运行时调整常数和乘数。

不,在接口生成器中不能这样做。你应该学习自动布局可视化格式语言,它确实可以让你在一次过程中对多个视图应用类似的约束

这是官方指南。

这篇博客文章有一个很好的介绍,以及许多有用的例子。

相关内容

最新更新