【问题标题】:Stack view is too big for the objects inside堆栈视图对于里面的对象来说太大了
【发布时间】:2017-01-24 18:07:41
【问题描述】:

我刚刚开始使用 Stack 视图。假设我有 3 个 UILabel,我想填充整个超级视图的宽度,水平放置。我现在看到最后一个 UILabel 并没有真正放置到屏幕边缘,但第一个 UILabel 放置正确。当我单击堆栈视图时,我看到堆栈视图放置正确,但是当我单击最后一个 UILabel 时,它并不是真正位于堆栈视图的边缘。所以我的问题是我做错了什么?我尝试了所有不同的选项,例如平均填充等。结果是 iPhone SE 的屏幕边缘留下了一个很小的空间,而 iPhone 7 的屏幕边缘留下了一个更大的空间。我没有使用对边距的约束.如果你不明白我的意思,我可以用图片更新这个问题。

其中的图片显示堆栈视图的大小正在拉伸到边缘。但是,我也收到错误消息,里面的标签缺少 X 位置或宽度,为什么需要这样做? https://postimg.org/image/49hl5gmuh/

此图显示玩家 4(堆栈视图中的最后一个对象)的得分没有到达堆栈视图的边缘 https://postimg.org/image/hxj0xvfn5/

【问题讨论】:

  • "如果你不明白我的意思,我可以用图片更新这个问题。" - 请:)
  • 我做到了!谢谢

标签: ios uilabel uistackview


【解决方案1】:

如果您对堆栈视图的设置正确(外部的黑线是模拟器的阴影,因此您可以看到左右标签正好靠在边缘),它就可以工作:

我使用了 Equal Spacing,堆栈视图本身具有将其边缘固定到父视图边缘(而不是边距!)的约束。

【讨论】:

  • 等间距会导致 uilabels 在 iPhone SE 屏幕上相互重叠。我正在使用堆栈视图的约束:中心 X,宽度等于:视图,顶部空间到:Superview 等于 2,高度为 21。我目前正在使用 Fill Equally。编辑:删除中心 X 并添加引脚 0 和 0(前导和尾随)时,自动布局要求我为该堆栈视图内的标签设置约束...
  • "我目前正在使用 Fill Equally" 但这就是问题所在。如果您为标签添加背景颜色,您将看到您正在平均填充 - 因此最后一个标签的右边缘是空的,因为它是左对齐的!
猜你喜欢
  • 1970-01-01
  • 2014-02-14
  • 2017-04-10
  • 2019-07-29
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-06-16
  • 1970-01-01
相关资源
最近更新 更多