UITableView的非字母索引

3
如何为UITableView实现非字母索引?在Apple的Remote App中可以看到此类示例。查看歌曲时,右侧有一个点状索引,允许用户快速滚动整个表格。同时,没有任何节标题。
谢谢。
2个回答

2
我猜它是通过返回一个由“中间点”字符(Unicode 00B7)填充的数组,两端由“黑点”字符(2022)包围而工作的。在Remote应用中,索引中有23个项目;因此,要做到这一点,您需要将数据分成大约相等长度的23个部分。正如occulus所说,在-tableView:titleForHeaderInSection:中返回nil@""将不显示任何部分标题。
在数据源的-sectionIndexTitlesForTableView:方法中返回前述的字符数组,然后实现-tableView:sectionForSectionIndexTitle:atIndex:来返回它给你的部分索引, 您应该能获得与Remote相同的行为。

Noah,谢谢。经过进一步的研究,我认为这个问题有点复杂。看起来苹果遥控器将歌曲分成了34个块(至少对于我来说,有大约11000首歌)。因此,虽然它在右侧显示了23个索引标记,但实际上创建了更多。我想知道它是否只是在运行时进行所有计算? - kav

1
如果您为节标题指定@"",则不会显示节标题,从而实现所需的效果。要使用表索引(右侧的小列表),仍应将表组织成节,以便在触摸索引时知道跳转到哪里,只需按照我描述的隐藏节标题即可。
要添加索引项,请参见UITableViewDelegate的方法:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView

谢谢。苹果是如何实现Remote中看到的项目符号索引列表的?这是一种索引“样式”,还是他们只是制作了一个项目符号数组? - kav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接