自动布局中按钮之间的宽度相等且间距相等

Jia*_*Jie 22 iphone cocoa-touch interface-builder ios autolayout

我正在尝试使用自动布局约束来自动调整视图中几个类似大小的按钮,以产生以下效果:

在调整大小之前

拉伸前

调整大小后的预期效果

拉伸后

你可以告诉我,我希望按钮的大小相同,我也希望每个按钮之间的间距是20分.起初看起来很简单,所以我设置了以下约束:

  • 按钮:左邻居的空间= 20(包括最左侧和最右侧的按钮)
  • 按钮:右邻居的空间= 20(包括最左侧和最右侧的按钮)
  • 按钮:宽度相同

调整大小后实际发生了什么

在此输入图像描述

在预览中或当我在iPhone /模拟器中测试运行应用程序时,按钮会调整大小,甚至不会遵循我为其设置的相同宽度约束.实际上,包含视图的视图也会调整大小以适应新的按钮大小.任何人都知道如何在界面构建器中完全解决这个问题?

dob*_*noc 15

设置:
- 宽度相等的所有按钮
- 水平间距所有按钮之间
- 领先于上海华第一个按钮,并尾随至SuperView已经最后一个按钮
应该做的工作.除非您遇到superview问题(例如ScrollView缺少约束)


小智 7

在界面构建器中,您可以像上面所述在按钮之间设置间距约束.然后,您可以命令选择所有这些并指定"等宽"约束以应用于所选对象.


iHu*_*ulk 3

这个问题似乎是因为错误content hugging prioritycontent compression Resistance priority。因此,您应该将它们设置为低内容拥抱和高压缩阻力(所有值都应具有相同的值)。

因为内容拥抱是抵抗视图增长的属性,而内容压缩抵抗优先级是抵抗视图缩小。有关这些的更多信息,您可以找到这个问题