首页 > 解决方案 > 如何确保 UILabel 只占用它需要的空间,而不需要额外的填充?

问题描述

在垂直堆栈视图中处理我的标签时,我遇到了一个特殊的问题。

水平堆栈视图应该是基于标签内容的动态高度。我已经尝试过之前提到的其他解决方案,例如将标签(以及也在水平堆栈视图中的图像)嵌入到单独的 UIView 中并将标签固定到边缘。

问题是,当标签设置为 0 - 标签增长超出其要求,在标签上方和下方添加填充。

我确实验证了这不是堆栈视图从 imageView 下方开始的约束的问题,因为在将堆栈视图对齐到“顶部”时警告标签正确地向上浮动,但标签仍然保持居中。

一切都在没有代码的情节提要中完成。

看看图片,也许有人可以帮助我并认识到我如何解决这个问题。

所需效果

所需效果

运行应用程序时会发生什么

运行应用程序时会发生什么

通过对齐顶部来验证堆栈视图是否正确固定到图像视图 通过对齐顶部来验证堆栈视图是否正确固定到图像视图

涉及的约束

涉及的约束

底部层次结构中的第二个stackview只是在设计阶段填充空白空间。我不认为这会导致问题。

标签: iosswiftuilabeluistackview

解决方案


在这里,警告UILabel正在占用剩余的可用空间,请尝试UIView在您为开发后期保留的第二个堆栈视图中添加一个空白。这将像一个间隔视图。

另外,别忘了warningLabel.sizeToFit()在里面打电话viewDidLoad()


推荐阅读