UITableView的索引字母表Section

2021-11-18  本文已影响0人  独孤流

前言:

在开发中会遇到各种各样的UI自定义字母表的情况,特记录下相关API

1、在开发中,有些UI会有按字母表分组展示,右侧是字母index排序,点击某个字母就跳转到对应的分组位置,典型的例子就是联系人列表

需要实现UITableViewDataSource的- (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView;方法即可

- (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView {
   return @[@"A",@"B",@"C"];
}

2、在某些特定场景下,会在字母表前面显示个#或其他特殊符号,但是点击对应的字母还是跳转到对应字母的分组,这样就需要改写每个title对应的index了- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// 实际的组比字母表的数量少一个,因为要在前面显示一个#
   return (@[@"#",@"A",@"B",@"C"].count - 1);
}
- (NSArray<NSString *> *)sectionIndexTitlesForTableView:(UITableView *)tableView {
// 让字母表比实际的组多一个字母
   return @[@"#",@"A",@"B",@"C"];
}
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
// 让点击#和第一个字母时都跳转到第一个字母,点击其他字母时跳转到其他字母
return MAX(0, index -1);
}
截屏2021-11-18 22.22.50.png

3、长按字母表有放大镜的效果,就像一般安卓手机那样

iOS如何完美简单实现UITableView索引的放大悬浮提示View显示

iOS UITableView字母索引——系统自带检索栏
自定义UITableViewIndex

上一篇 下一篇

猜你喜欢

热点阅读