【问题标题】:Storyboard labels constraints故事板标签约束
【发布时间】:2017-06-07 09:49:05
【问题描述】:

我的故事板上有 4 个标签,它们在基线对齐并且它们之间的距离固定。 每个标签在运行时可以有不同的值,我希望这4个标签的组水平居中。

没有成功修复它! 我试图将它们放在视图中并将视图居中,但它也不起作用。 也尝试过处理优先级,但也没有成功......

是否有可能在情节提要中实现?

【问题讨论】:

  • 您可能正在寻找的是堆栈视图。
  • 我同意贾斯汀的观点。如果没有堆栈视图,这是相当痛苦的,而使用堆栈视图则微不足道。
  • 如果每个标签之间的距离是固定的,则此解决方案有效,但如果它们不同,则堆栈视图不允许...

标签: swift storyboard constraints


【解决方案1】:

您可以通过将 4 个标签放在另一个视图中来做到这一点。添加以下约束:

  1. 在标签之间设置固定距离约束(3 个约束)。
  2. 设置约束以对齐标签的基线(3 个约束)。
  3. 设置从最左侧标签到包含视图的前导约束。将常量设置为0。
  4. 设置从最右边标签到包含视图的尾随约束。将常量设置为0。
  5. 设置视图高度约束。
  6. 设置从左标签顶部到其包含视图顶部的约束。
  7. 设置约束以使视图水平居中。
  8. 设置约束以垂直定位视图。

视图的宽度将由标签的固有大小加上#1 中的距离大小决定。这个宽度会随着标签内容的变化而变化,并且视图将保持组居中。


【讨论】:

  • @Eric,你试过这个吗?有什么东西没用吗?我假设您希望标签宽度是动态的。如果您希望它们被固定,请为每个标签添加宽度约束。
  • 嗨 VacaWama,感谢您的回答,这正是我正在寻找的。有比堆栈视图更多的约束,但我可以根据我的需要自定义标签和基线对齐之间的距离。再次感谢:)
【解决方案2】:

您可以为此使用堆栈视图:

例如,在“属性检查器”中,您可以设置每个文本字段的宽度相等,并且它们之间的间距为 5 点:

然后,您可以像往常一样使用 Stack View 水平居中。

【讨论】:

  • 您好,感谢您的提示。试过了,但在我的例子中,标签之间没有相同的空格,并且在堆栈视图中它们必须完全相同。
  • 你是否设置了同样的填充?
  • 是的,据我所知,如果标签位于堆栈视图中,我无法在标签之间放置水平约束。
猜你喜欢
  • 1970-01-01
  • 2016-01-09
  • 2015-02-13
  • 2016-06-27
  • 2019-10-08
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多