我要求滚动六种不同类型的视图,每个视图都有不同的大小,其中一个视图是:关于我。在关于我,我必须显示标题(即关于我)和它下面的文字,标签高度应该根据文字高度。
直到现在我已将此要求设计为:
Root View - 堆栈视图 *项目1具有固定高度 *项目2具有固定高度 *关于我的UIView: - 标记为标题 - 标记为文本,最大行设置为0,宽度等于容器宽度。
问题是:我无法设置关于我UIView的修复高度,并且它不会根据标签文本调整大小。 请提出相应的解决方案。
答案 0 :(得分:3)
您好,您可以像这样获得stackView的内在高度:
let size = stackView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
我知道我回复这条消息有点迟了。但我有同样的问题,我找到了这段代码。以为任何寻找这个的人都认为有用:)
答案 1 :(得分:0)
我认为你没有明确表明你的问题。我要指出的第一件事是UIStackView
可以通过其排列的子视图的大小来推断其大小。但您必须首先确认添加到子视图的约束是否正确。因此,如果你没有得到你想要的大小调整效果,你必须遗漏一些东西。也许你没有做出合理的约束。
为了澄清您的情况,您最好添加一些添加到“关于我”视图中的约束的屏幕截图。顺便问一下,UIStackView
的轴是什么?
我不知道其中任何一个。所以我必须为我做一些假设来解释你的问题。
UIStackView
的轴是UILayoutConstraintAxisVertical
。 UIStackView
(或您的所有内容)都有固定的宽度。根据上述条件,定义其高度由其文本决定的视图将很简单。因为UILabel
不必具有固定大小。您只需指定其宽度(或指定其超前视图的前导和尾随),其高度将根据其字体和内容自动计算。
你的关于我的视图有两个标签,所以你应该
确保这些事情: