前言:
在开发中会遇到各种各样的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
网友评论