【问题标题】:Arrange custom sized UILabels Under Equally Sized UIImages all by UIStackView在相同大小的 UIImages 下排列自定义大小的 UILabels 全部由 UIStackView
【发布时间】:2018-03-01 10:16:24
【问题描述】:

我想通过 UIStackView 将大小可变的 UILabel 排列在相同大小的 UIImage 下。但我最终得到了缩小的字体或用两行包裹的文本。请参阅下面的图片以了解此想法。

[实际问题] 此外,它唯一按预期工作的情况是当我使容器足够大时。我的目标是在 60% 的屏幕宽度范围内实现这一点,从 iphone 5 及更高版本开始。

我想要达到的目标:

但我最终会得到以下结果:

或者这个:

结构是这样的

注意:所有 UI 都是由堆栈内的堆栈组成的。所有图像和标签都有自己的堆栈,然后包装在后续堆栈中以垂直和水平对齐。

【问题讨论】:

  • 你能显示容器视图的约束吗?
  • 无手动约束,仅在栈内堆叠。出于测试目的,最外面的堆栈在屏幕中间对齐。
  • 你玩过自动缩小:固定字体大小和标签的内容拥抱优先级?
  • 是的,第二张图片是我应用自动缩小时的结果(我也尝试过纵横比,但没有成功)。拥抱/抵抗无法产生预期的结果。

标签: swift uiimage uilabel uistackview


【解决方案1】:

在下面的屏幕截图中查看约束关系和视图层次结构。 UILabel 水平居中于UIImageView。并且与UIImageView 有垂直空间而且UILabel 不在UIStackView 层次结构中。

更新:将 UIImageView 和 UILabel 都放在容器 (UIView) 中。然后在 UIStackView 中,以防需要外层栈。

【讨论】:

  • 是的,我可以通过将标签放在堆栈之外来做到这一点。但我的限制是将标签保留在堆栈内,它们总是以某种方式落入堆栈之下,成为外部堆栈层次结构的一部分。有可能吗?
  • 将机器人 UIImageViewUILabel 放入容器 (UIView)。然后在UIStackView。如果有时间,我给你举个例子
  • 让我试试,我会确认的。
  • 嘿,@igor-kotkovets,接受帖子编辑,我接受你的回答。
  • 感谢您的时间,Igor,帮了大忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多