如何快速为 stackview 中包含的标签提供动态高度

问题描述 投票:0回答:4

UITableView
单元格内,我具有以下结构。

它有两个

UIStackView
实例,左和右

  1. 左侧堆栈视图包含 3 个视图。每个视图包含 1 个标签(Label1、Label2、Label3)
  2. 右侧堆栈视图包含 2 个视图。每个视图包含 1 个标签(Label5、Label6)

Label1、Label2 和 Label3 的约束是相对于其父视图的顶部、左侧、右侧和底部。

现在,当我在运行时向 Label1、Label2 和 Label3 添加文本时,它会提供动态高度,但会在顶部和底部留出空间,以便那些文本较少的标签。以下是输出。

我想减少所有三个标签(即 Label1、Label2、Label3)的顶部和底部空间。

任何帮助将不胜感激。

ios swift uitableview uistackview
4个回答
5
投票

这可能对你有帮助

我认为您已经使用堆栈视图的分布作为均匀填充,因此它为每个视图提供了相等的空间。 我认为为此你必须按比例使用填充。这将相应地调整高度

Choose fill proportionally from here

if this not working then choose fill proportionally and give height to each label it will adjust.

检查如何为标签指定高度。

在堆栈视图中给出每个标签高度后,如下所示。 你的它会根据数据自行调整。像这样


2
投票

对于动态高度,请在表格视图中使用自调整大小的单元格。设置tableView的rowHeight和estimatedHeight属性

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 100

将 stackview 分布属性设置为

.fillproportionally

根据 .fillproportionally 属性的 UIStackView 文档

一种布局,其中堆栈视图调整其排列视图的大小,以便它们 沿着堆栈视图的轴填充可用空间。意见是 根据其内在内容大小按比例调整大小 堆栈视图的轴。

代码:

stackView.distribution = fillproportionally

或在故事板中


2
投票

请检查随附的屏幕截图,其中显示了完整的分步指南。如何在具有多个 UILabel 的垂直 stackview 内动态设置 UILabel 高度。

如有任何疑问请评论。

Check the attached screenshot


0
投票

首先进入主 UIStackview 高度约束编辑选项并将恒定高度设置为大于当前恒定高度。之后您将设置标签行号 0。

现在添加tablewView行高委托函数并返回UITableView.Autodemenssion高度。

© www.soinside.com 2019 - 2024. All rights reserved.