【问题标题】:Extra space on top and bottom of UILabel in Xcode 7.3.1Xcode 7.3.1 中 UILabel 顶部和底部的额外空间
【发布时间】:2016-12-18 12:38:45
【问题描述】:

我目前在 UILabel 的顶部和底部获得了额外的空间。我将它设置为字体大小 24,但它可以小至 14 号(这是为了帮助在 4s 等较小的手机上使用时文本适合)而且我将行数限制为 7。除此之外,我没有任何约束迫使它达到一定的高度,我让 Xcode 决定,但我不明白为什么它会增加额外的空间。查看图片了解我的所有设置。

UILabel 属性

大小检查器约束

在 Xcode 中查看

iOS 中的结果

我确实有圆角并添加阴影的代码,但我认为它不会影响顶部和底部的间隙,因为它甚至在代码运行之前就显示在 Xcode 中。

作为解释,16 的约束使宽度与白色背景的宽度相匹配。并且 6 的约束是调整 UILabel 周围的深绿色背景。

编辑:添加完整的约束列表

编辑 2:添加 XIB 图像

【问题讨论】:

  • 您已将标签固定到视图的顶部和底部。因此,标签通过根据视图调整其高度来做正确的事情。如果你想让标签自动调整它的高度,那么你需要不同的约束集。
  • 那个 UIView 的高度和宽度没有设置(深绿色的 UIView)。它的大小完全由 UILabel + 6 的大小决定。
  • 你能告诉我们你添加的所有约束吗?
  • 苛刻:我添加了完整列表

标签: ios swift uilabel


【解决方案1】:

尝试将约束移除到底部,让 UILabel 为您决定高度。

使用 UILabel 你不能垂直对齐到顶部,这个答案可以帮助你理解:https://stackoverflow.com/a/1054681/5109911

【讨论】:

  • 我不相信我有任何底部约束会强制标签的特定高度。唯一限制在底部的是背景 UIView(深绿色)。 UIView 的大小 100% 由 UILabel 确定。我确实测试了你的建议,标签仍然在顶部和底部添加空格。
  • 您的问题是 UILabel 的高度大于他的内容。我看到一个常数为 -6 的约束,请尝试禁用它。
  • 你是正确的,底部 -6 约束在那里。但是那个 UIView 的大小是由 UILabel 决定的。但是,我确实测试了您的建议,并没有看到 UILabel 额外空格有任何变化。据我所知,我没有任何强制 UILabel 高度的东西。
  • 你能分享你的xib文件吗?所以我可以检查所有的约束,图像是相当困难的