【问题标题】:Make a generic UITableViewCell Swift制作一个通用的 UITableViewCell Swift
【发布时间】:2018-04-14 05:19:43
【问题描述】:

我知道这是一个广泛的问题,我基本上会问这个问题,因为我不知道该怎么做。我手头的任务是制作一个通用的 tableViewCell,它可以同时满足多种用途,并且该单元格的布局将根据输入进行相应更改。首先,所有单元格必须能够具有以下内容:标题、文本正文、单个图像或多个图像、数据集合(显示在 UITableViewCell 内的 UICollectionView 中)。这个想法是用户可以创建部分,这些部分没有类型,所以任务是从这个通用 UITableViewCell 中生成正确的单元格。

例如可以。用户创建两个部分- 1.Section 用户创建标题和正文,仅此而已。 2.部分用户创建一个身体和多个图像。对于第 1 节,单元格只需要包含标题和正文,而忽略其余部分。对于第 2 部分,我将有一个身体和一些图像。你们将如何创建这种行为?我尝试使用带有约束的情节提要,但即使我隐藏了标题,UIElement 仍然存在,并且在第 2 节没有标题的情况下,标题约束下方的主体仍然附加到 UIElement,主体应该有约束而是单元格的顶部。请让我重新措辞,如果这太宽泛或想法不够清晰。

【问题讨论】:

    标签: swift uitableview generics layout


    【解决方案1】:

    尝试查看stackview。或者如果你不想使用它,我做一个简单的技巧。

    在顶部创建一个优先级为 1 的约束。还为字幕从顶部到标题底部添加一个优先级为 500 的约束。为优先级为 1 的约束创建出口。然后每当设置标题标题时检查它是否为空。如果是,则将约束的优先级设置为 999,否则设置为 1。

    对一个元素使用它是可以的,但如果是多个元素,最好使用stackview。

    【讨论】:

    • 不错的答案。我会尝试并实现这一点。但是,对于堆栈视图,您是否会将所有元素添加到情节提要中的此堆栈视图?如果是这样,您如何解决忽略某些元素而其他元素保留的问题?
    • 要从堆栈视图中直观地删除元素,只需将其隐藏即可。它会自动将其高度设置为 0。当你有一个带有填充的元素时要小心。您应该将其填充约束设置为优先级 999。否则您将收到破坏约束警告。
    • 你好@Luzo 我终于搞定了!!非常感谢,我将您的回答广告标记为已接受并投了赞成票。对于其他所有人,我推荐stackview,我按照本教程进行操作,我可以大力推荐:raywenderlich.com/160646/…
    【解决方案2】:

    无论如何,您以某种方式定义了用户来源,不是吗?所以你有某种模型 - 结构可以完全定义你的 UI 行为,所以如果你知道哪些字段组合是有效的以及如何呈现它们,我在这里看不到任何问题。是的,可能 UI 并不容易,但它会 100 % 定义

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多