我有一个分组的UITableView。现在,与默认的表格视图标题不同,我的标题应该在各个单元格旁边:

标准:

[Header Cell]
[Item 1]
[Item 2]

我需要的
+-------+----------------+
|       |  Item 1a       |
|  h1   +----------------+
|       |  Item 1b       |
+ - - - +----------------+
|          Item 1c       |
+------------------------+
|       |  Item 2a       |
|  h2   +----------------+
|       |  Item 2b       |
+------------------------+
|       |  Item 3a       |
|  h3   +----------------+
|       |  -placeholder- |
+-------+----------------+

一些说明:
  • 组H1具有三个项目
  • 组H2有两个项目
  • 组H3只有一个项目(我必须插入一个占位符单元格,以便标头单元格可以具有两个项目单元格的整个高度
  • 当用户滚动列表时,应将标题向上推,以使两个标题单元格不重叠。

  • 这里的挑战是标题单元格的高度:
  • 如果我将高度设置为0并取消选中clip subviews,则会显示该标头单元,但不会在正确的位置被推开。
  • 如果我将标题单元格的高度设置为可视高度,则在整个表的整个宽度上都有一个我不想要的高度的空白空间...

  • 更新1:我刚刚意识到苹果使用这样的列表进行搜索(按消息,邮件,联系人,日历等分组)。所以我的问题基本上是如何调整UITableView以使其表现得像分组的搜索结果... :-)

    iphone - 如何实现高级表格 View 头-LMLPHP
    (来源:mshcdn.com)

    最佳答案

    更新:我在github上创建了一个项目,正是这样。我已经将行为的所有相关代码提取到两个类中( BBFloatingHeaderViewController BBFloatingHeaderCell )。还有一个示例项目。我希望这对其他人有用:-)

    这是项目:besi/FloatingTableViewHeader

    这是自述文件的摘录:

    浮动的UITableView标头

    这些类旨在复制在iOS内置Spotlight搜索中发现的行为,该行为按类别对搜索结果进行分组,并且相应类别的图标浮在搜索结果的左侧。

    建立

    查看示例项目,以便了解如何设置类。


  • .m.hBBFloatingHeaderViewController + BBFloatingHeaderCell文件添加到您的项目中。
  • 创建一个TableView并将ViewController的类设置为BBFloatingHeaderViewController的子类
  • 在IB中创建标头单元,并将其类设置为BBFloatingHeaderCell的子类
  • 确保浮动标题视图是BBFloatingHeaderCell的视图层次结构中的最顶层视图。


  • 结果

    Floating Headers http://i.minus.com/jyea3I5qbUdoQ.png

    关于iphone - 如何实现高级表格 View 头,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11475897/

    10-11 18:27