当前位置: 首页 > 知识库问答 >
问题:

具有多个动态高度的表格视图上的Xcode自动布局垂直约束

孙成益
2023-03-14

我正在尝试创建一个 UITableViewCell,其中包含 3 个子视图 - 一个按钮和两个标签。表视图单元格应如下所示:

Button --Label 1-----------
       --Label 1 continued--

  --Label 2-----------------
  --Label 2 continued ------

目前,我有一个按钮1,它的前导、顶部、宽度和高度约束将其固定在左上角。标签1有一个从按钮、顶部、左侧和底部约束到内容视图的前导约束。标签1的行数设置为0,并且可以动态扩展,到目前为止,这是可行的。

我很难弄清楚如何为标签2设置约束,以便它始终低于标签1并且可以扩展。

我尝试将标签2的顶部约束设置为标签1的底部,所有其他边都固定在内容视图上,但这导致了高度和垂直位置不明确的错误。我需要为标签2添加什么约束?

共有2个答案

彭霄
2023-03-14

我已经设法让它工作,尽管我仍然不确定它如何工作。我是这样做的:

为标签1提供了内容视图的顶部、前导和尾部约束。

为标签2提供内容视图的底部、前导和尾随约束。

给标签2一个顶部约束到标签1的底部(Label2.top = Label1.bottom 3)

为 Label 1 提供了内容视图的底部约束,其关系大于(底部边缘

这允许两个标签都可以扩展,并且还可以使用UITableViewAutomaticDimension自动调整UITableViewCells的大小。

夏侯宏旷
2023-03-14

你应该检查尺寸检查器上的内容拥抱优先级和内容压缩阻力优先级。这应该消除歧义。发生这种情况是因为自动布局不知道哪个标签应该在空间不足的情况下生长或缩小。

如果情况并非如此,并且您希望保持两个标签的大小相同,则可以使用从一个标签到另一个标签的相等高度约束。

 类似资料:
  • 我有一个带有一堆单元格的表视图(自定义单元格,它只有它的内容视图)。 在 中,我正在向自定义单元格的content视图添加一个预定义的UIView(它有几个子视图)。我之前为UIView及其子视图设置了所有约束。 最后但并非最不重要的是,我为我的自定义单元格的内容视图(superview)和UIView设置了垂直和水平约束,UIView是在(subview)之前添加的。 约束字符串如下所示: 不幸

  • 对于我的表视图单元格的动态高度,我从此链接中引用。在 UITableView 中使用自动布局进行动态单元格布局 这是我的表视图数据源和委托方法的代码 我有 2 个问题: > 我的问题是我在线路附近收到错误 在和。 为什么我必须在单元格中同时写入标签文本“和? 另外,我是否缺少实现单元动态高度所需的任何内容?

  • 我有一个UIScrollView,嵌套在一个内容视图中,它有两个嵌套的子视图,一个具有已知高度的常规UIView,以及一个具有动态高度的容器视图,具体取决于内容。就像这样: 视图如下所示: 我的约束设置如下: 滚动视图被限制在其超级视图(即视图)的尾缘、前缘、顶端和下边缘 内容视图被约束到其超级视图(即滚动视图)的尾部、前导、顶部和底部边缘。它还具有与主视图(即视图)相等的宽度约束,因此滚动视图的

  • 我正在研究具有动态单元格高度的表视图。 由于我的要求,我必须展示40种不同的cell.Each细胞是不同的。 例如。 一个单元有2个标签,一个图像视图另一个单元只有2个图像视图,另一个单元格有5个标签,1个文本视图,2个按钮,2个图像查看 我的问题是我无法静态定义高度。每个单元格中的.labels和textview都基于运行时的文本。因此,根据各个元素,我需要调整高度。所以我根据下面的编码计算了标

  • 我正在设计一个具有滚动视图的页面,其上方是表格视图(禁用滚动)。为此,我在这个问题中提到了答案 - 使UITableView不可滚动并调整高度以容纳所有单元格,但没有成功。 视图层次结构以及提供的约束- -主视图 -滚动视图< br >固定在主视图的所有边上(0,0,0,0),限制边距 -内容视图 固定到滚动视图(0,0,0,0),与主视图宽度相等,与主视图高度相等(优先级-250) -内容视图中

  • 我在水平滚动视图中实现了一个表格布局,这也是垂直滚动视图的一部分。它是这样工作的;当垂直或水平滚动时,它会为每种滚动类型显式滚动。意思是当垂直滚动时,水平滚动根本不会发生,比如说,如果手指对角移动,就不会发生垂直或水平滚动。要水平滚动,必须再次触摸它,并且它只在水平方向滚动,如果手指对角移动,就不会发生垂直或水平滚动。[这里也是如此]。 一次手指触摸似乎只处理一次回调。我也需要对角线滚动,应该同时