【问题标题】:UILabel inside Stack View堆栈视图中的 UILabel
【发布时间】:2016-07-24 21:56:11
【问题描述】:

我正在尝试拥有一个包含 3 个UILabelsStack View。问题是,即使在设置了抗压优先级之后,我仍然会收到警告。无论我做什么,更新框架都不起作用。我想这与标签具有内在尺寸的事实有关?我应该如何解决这些警告?谢谢!

【问题讨论】:

  • 设置约束后你更新帧了吗?
  • @fiks 我已经提到我尝试更新框架,但什么都不会发生。警告仍然存在。
  • 如果您可以明确限制标签的高度(即不改变文本),为至少一个标签添加高度限制应该会消除所有三个布局警告
  • 这是 Interface Builder 中的错误。在设备上运行时一切正常。确保您为 Stack View 中的所有元素设置了不同的压缩阻力和内容拥抱集,以避免无法解决约束。 AFAIK 这已在 Xcode 8 中修复。
  • 谢谢@Andy!安装 Xcode 8 后,警告消失了!

标签: ios xcode autolayout


【解决方案1】:

请从 stackview 中移除高度限制。这样就可以解决问题了。

【讨论】:

  • 高度限制是什么意思?对于堆栈视图,我只有这 4 个约束。
  • 从 stackview 中移除底部约束。对于您共享的设计,您的堆栈视图应该只有 3 个约束:Leading、Trailing 和 Top。
  • 我不明白为什么这很重要。即使我删除它,警告仍然存在。正如@Andy 提到的,安装 Xcode 8 就成功了。
  • 为什么只有 3 个?通常你会有 4
  • 这就是 UIStackView。垂直堆栈视图根据其子视图动态增加其高度。水平堆栈视图宽度相同。在某些情况下,您需要设置底部约束,但不是您的情况。请在 UIStackView 上下载以下系列link
猜你喜欢
  • 1970-01-01
  • 2018-06-12
  • 1970-01-01
  • 2022-12-09
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多