繁体   English   中英

如何根据子视图的高度设置堆栈视图的高度?

[英]How to set stack view height according to its subviews height?

我需要滚动六种不同类型的视图,每个视图具有不同的大小,视图之一是:关于我。 在“关于我”中,我必须显示标题(即“关于我”)及其下方的文本,标签高度应根据文本高度而定。

到现在为止,我将此要求设计为:

根视图-堆栈视图*具有固定高度的项目1 *具有固定高度的项目2 * UIView与我有关:-标签为标题-标签为文本,最大行数设置为0,宽度等于容器宽度。

问题是:我无法设置大约UIView的固定高度,并且不会根据标签文本调整大小。 请提出适当的解决方案。

嗨,您可以像这样获取stackView的固有高度:

let size = stackView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)

我知道我有点迟才回复此消息。 但是我遇到了同样的问题,并且发现了这段代码。 以为任何人寻找这个可能有用:)

我认为您没有明确声明问题。 我要指出的第一件事是UIStackView可以通过其排列的子视图的大小来推断其大小。 但是,您必须首先确认添加到子视图的约束是正确的。 因此,如果您没有获得想要的调整大小效果,那么您肯定会丢失一些东西。 也许您没有做出合理的约束。

为了澄清您的情况,最好将一些有关约束的屏幕截图添加到“关于我”视图中。 顺便说一句, UIStackView的轴是UIStackView

我都不知道这些。 因此,我必须为我做一些假设,以进一步说明您的问题。

  • UIStackView的轴为UILayoutConstraintAxisVertical
  • 而且您的UIStackView (或您所有的内容)具有固定的宽度。

在上述条件下,定义其高度由其文本决定的观点将很简单。 因为UILabel不必具有固定的大小。 您只需要指定其宽度(或指定其前导和尾随其超级视图),它的高度将根据其字体和内容自动计算。

您的关于我的视图有两个标签,因此您应该
确保这些事情:

  • 标题标签:超级视图的顶部,顶部,尾部约束。 以及字幕标签底部的间隙(无论您叫什么)。
  • 字幕标签:超级视图的开头,结尾,底部,约束。 以及标题标签的顶部间隙。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM