水平堆栈视图中按钮的宽度 - iOS - 故事板

Width of button in horizontal stackview - iOS - Storyboard

我在垂直堆栈视图中有两个控件,下面是我的问题

我希望我的控件像这样显示

而是这样显示

如何设置适合按钮的标题,使按钮的宽度不增加

此外,按钮标题是动态的,因此我无法控制将其设置为常量值

请指教

我建议使用 set content hugging priority 方法。如果您以编程方式进行查看,它应该看起来像这样:

myButton.setContentHuggingPriority(.required, for: .horizontal)

有几种方法可以做到这一点。虽然 UIStackView 不是 所必需的,但它可以节省设置约束的几个步骤。

所以,这是一种方法:

  • 我已将我的堆栈视图 20-pts 限制为顶部、前导和尾随 (safe-area),但没有底部或高度限制。
  • 堆栈视图设置为 Alignment: Center Distribution: Fill Spacing: 2
  • 按钮的左和右内容插图为 40,顶部和底部内容插图为 4。这将允许他们根据动态标题水平拉伸/收缩。
  • 我给标签设置了 28.5 的高度限制(所以,只有一点垂直填充), 给了它们 Equal-Width 对堆栈视图的约束。
  • 文本字段对堆栈视图也有 Equal-Width 约束。

因此,按钮保持居中并根据标题调整宽度,标签和文本字段会拉伸以适应堆栈视图的宽度。