【问题标题】:Setting the constraints of a UI Collection View Cell设置 UI 集合视图单元的约束
【发布时间】:2021-08-08 17:48:15
【问题描述】:

在我的 UI 中有一个 collection View,其中每个单元格包含一个 UILabel 和一个 UIImageView。有如下对齐方式。

我被困的地方是对它们设置约束,因为每个 UILabel 都有一个随机长度。我总是想让图像左侧和单元格左侧之间的距离等于标签右侧和单元格右侧之间的距离(在某个单元格中)。

我知道我可以将每个元素的centerY 设置为等于每个元素的centerY。但是如何设置另一个锚点。

我没有使用故事板。

【问题讨论】:

  • 您需要另一个“占位符”视图。无论是UIStackView,还是您将设置图像和标签的父视图。这个应该以 X 为中心,并且可能具有最小的前导(或尾随)。在该 parentView 中,添加缺少的约束。

标签: ios swift uicollectionview uicollectionviewcell


【解决方案1】:

如果我正确理解您的问题,您希望将 UImageView 左侧和 UILabel 右侧的间距设置为相等。为此,我建议您将这些视图(UIImageView 和 UILabel)放在具有属性的 UIStackView 中:轴为“水平”,对齐为“中心”;并使用 CenterX 和 CenterY 约束为前导和尾随空间添加约束。

为了便于理解,看一下UIStackView Constraints的图片

【讨论】:

    【解决方案2】:

    我会添加一个水平堆栈视图,为每个具有所需边距的边缘设置约束,然后将图像和标签添加到堆栈视图。

    然后将拥抱优先级设置为高于标签的图像视图。这将导致标签在左对齐时占用剩余空间。

    【讨论】:

    • 如何设置每个边缘的边距?因为依赖于每个单元格内标签边距变化的文本。请解释
    • 堆栈视图负责布局其中的内容。您可以将内容对齐设置为center,水平堆栈视图将使其垂直居中。随便玩玩吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    相关资源
    最近更新 更多