我有一个分组的 UITableView 。现在与默认的表格 View 标题不同,我的标题应该是 next 到各个单元格:
标准:
[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 以使其表现得像分组搜索结果... :-)
(来源:mshcdn.com)
Best Answer-推荐答案 strong>
更新:我在 github 上创建了一个项目,正是这样做的。我已将行为的所有相关代码提取到两个类( BBFloatingHeaderViewController 和 BBFloatingHeaderCell )。还有一个示例项目。我希望这对其他人有用:-)
这是项目:besi/FloatingTableViewHeader
这是自述文件的摘录:
Floating UITableView headers
These classes aim to copy the behaviour found in iOS built-in Spotlight search, where the search results are grouped by category and the icon of the respective category floats on the left side of the search results.
Setup
Check out the example project so see how to setup the classes.
- Add the
.m + .h files of BBFloatingHeaderViewController and BBFloatingHeaderCell to your project.
- Create a TableView and set the Class of the ViewController to your subclass of
BBFloatingHeaderViewController
- Create the header cell in IB and set its class to your subclass of
BBFloatingHeaderCell
- Make sure that your floating header view is the topmost view in the
BBFloatingHeaderCell 's view hierarchy.
The result
Floating Headers http://i.minus.com/jyea3I5qbUdoQ.png
关于iphone - 如何实现高级表格 View 标题,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/11475897/
|