【问题标题】:Swift - why elements don't have equal sizes?Swift - 为什么元素的大小不相等?
【发布时间】:2021-12-24 08:06:23
【问题描述】:

我的屏幕上有一个Vertical Stack View (Alignment = Fill, Distribution = Fill)。

里面有从上到下的:

  1. Label(无限制)
  2. Vertical Stack View (height=21)
  3. Horizontal Slider (height=21)
  4. Label(无限制)

我希望我的两个标签(元素 1 和 4)大小相同,并将占据屏幕的大部分,因此第 2 和第 4 个元素将位于屏幕的中心。但实际上我的底部标签的高度仅足以填充它的文本,而我的顶部标签占据了大部分空间。

我尝试将堆栈视图的 Distribution 更改为 Fill Proportionally,但在这种情况下,我的顶部标签变得小于底部标签。

为什么会这样?我怎样才能让我的标签变得等高?

PS 我注意到有关内容优先级歧义的警告,但我不知道该怎么办

【问题讨论】:

  • 拥抱优先确实是问题。
  • @matt ,我读到了关于拥抱优先级和抗压缩性的信息,但是另一个标签存在问题。我的“EDIT TIMER”和“ANOTHER”标签的这些属性是相等的,因此我不明白为什么它们的尺寸不同。
  • 因为他们是平等的。没有更多信息,堆栈视图不知道要拉伸哪个视图。所以它只选择一个。

标签: swift xcode view uikit


【解决方案1】:

为了使两个标签的高度相等,我必须选择它们并添加一个约束相等高度

关于Content Priority Ambiguity的警告不是关于他们,而是关于水平标签。为了在保持位置不变的同时删除警告,我将水平 Stack ViewDistribution 更改为 Equal Centering

【讨论】:

    猜你喜欢
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多