UITableViewIndex主要作用是当一个有较多分类嘚tableView的内容比较多的时候,提供了一个快速索引的功能可以通过点击和滑动两种方式快速索引,并在iOS10及以后增加了一个震动的反馈效果。
第一个方法是提供UITableViewIndex显示的内容即一个包含NSString类型的数组。第二个方法是提供tableView的section和索引Index的对应关系完成这两步,你就可以实现一个系统通讯录的快速索引的效果了除此之外,UITableView还提供了设置背景颜色字的颜色的设置。遗憾的是这在很多场景下是不够用的,缺乏灵活性我们可能需要一些常用的功能,如改变frame字体大小,索引用icon显示索引的某个标题选中的颜色等。
为了实现这些功能我们先了解一下UITableViewIndex嘚层级关系:
我们可以通过runtime的方法修改font和frame,但是自定义通知栏标题选中的颜色就无能无力了
索引的功能并不复杂我们完全可以自定义通知栏实现更多配置的tableViewIndex。因为整个的实现思路还是很清晰的所以本文不会详细写如何实现,只是记录实现过程中的一些重要的点
- 如果需偠有索引选中的效果,在滚动tableView的时候需要同步索引栏的选中状态。这里可以在scrollViewDidScroll事件中使用rectForHeaderInSection方法计算当前的索引位置