【问题标题】:Why use UITableViewHeaderFooterView or tableHeaderView instead of multiple UITableViewCell?为什么使用 UITableViewHeaderFooterView 或 tableHeaderView 而不是多个 UITableViewCell?
【发布时间】:2020-04-13 04:09:01
【问题描述】:

问题

使用tableHeaderViewtableFooterViewUITableViewHeaderFooterView 与仅使用多个UITableViewCell 相比,并将其自定义为页眉或页脚有什么好处?


示例

  1. 静态横幅图片
  2. 一个静态部分,其输入字段看起来都一样:
    • 名字
    • 姓氏
    • 年龄
    • 身高
    • 重量
  3. 静态部分“约会”,可以扩展
    • 医生预约的动态列表
  4. 静态部分“图像”,可以扩展
    • 图片的动态列表
  5. 带有“保存”按钮的静态部件

我的直觉是让前两个静态部分 (1, 2) 成为tableHeaderView,其他静态部分 (3, 4) 成为 section header,动态列表(低于 3,4)成为@987654328 @ 内部部分,保存按钮为tableFooterView

但是输入字段(在 2 下)看起来很相似,所以它们也可能是 cells

但是我需要以特殊的方式处理部分,因为第一部分没有标题视图。

然后,2个月后,需求发生变化,添加了其他5个特殊部分。


总而言之,我想知道,为什么不将所有内容都实现为 UITableViewCell,并拥有一个可以轻松扩展的 CellType 枚举?

然后你有一个平面数组cells: [CellType],它是表格视图的唯一真实来源,以及一个填充这个数组的方法func buildCells()


到目前为止,this is the only article 我发现有人在谈论这个,我有点同意它。

【问题讨论】:

    标签: ios iphone uitableview


    【解决方案1】:

    这种方法(只有表格视图单元格,没有页眉/页脚视图)工作正常。在您的示例中,我也会制作所有这些单元格。

    使用tableHeaderViewtableFooterViewUITableViewHeaderFooterView 与仅使用多个UITableViewCell 相比有什么好处,并将其自定义为页眉或页脚?

    虽然一系列单元格在您的特定示例中可能有意义,但我不会概括该结论,因此,断然摒弃页眉/页脚视图的想法。在许多情况下,页眉/页脚视图方法最符合逻辑和直观:

    • 在许多情况下,节标题没有任何与之关联的模型数据,而只是出于组织目的......标题视图方法很有意义;

    • 在其他情况下,我们正在处理由同质项组成的数组......再次,标题视图方法很有意义;它的好处是索引路径sectionrow 现在可以很好地映射到模型;

    • 有时我们希望标题在滚动到视图之外时保持不变(这样用户可以看到他们所在的部分,即使标题本来会滚动到视图之外);

      李>
    • 有时我们需要一个页脚来显示一些派生的计算值(例如,在发票上列出项目时,也许“总计”应该显示在页脚中)。

    您的场景更像是一个异构模型对象列表。在这种情况下,我认为将单元格用于此模型数据是完全合理的。但显然页眉和页脚视图仍然有用,而且在许多情况下更简单、更直观。

    【讨论】:

    • 是的,我觉得这两个极端都是错误的。有时一系列单元格有效,有时数据非常相似,它与节/项目结构很好地吻合。通常,您会“感觉到”屏幕是否会变成一堆模型。我正在尝试查看是否有关于何时选择哪个“快速提示”指南,
    • 我的一般倾向(但不是硬性规定)是,如果它是有意义的模型数据,我倾向于将它放在一个单元格中。或者,如果我希望用户能够与之交互,我倾向于细胞。但如果它只是一些组织花絮和/或一些派生计算,通常页眉/页脚是有意义的。但当然也有例外。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 2017-06-14
    • 2011-07-14
    • 2016-11-29
    相关资源
    最近更新 更多