汉字拼音首字母排序/TableView右侧索引(类似通讯录功能)

需求:

许多的银行展示在TableView上,需要加上UITableView的右侧索引功能、方便用户快速选择。类似通讯录的功能。

原理:

在Objective C语言中,字符串是以unicode进行编码的。在unicode字符集中,汉字的编码范围为4E00 到 9FA5 之间(即从第19968开始的20902个字符是中文简体字符)。我们把这些字符的拼音首字母按照顺序都存放在一个char数组中。当我们查找一个汉字的拼音首字母时,只需把这个汉字的unicode码(即char强制转换为int)减去19968,然后用这个数字作为索引去找char数组中存放的字母即可。参见pinyin.c文件。

获取银行名称首汉字的拼音首字母,然后根据首字母去构建二维数组,便于在UITableView的section下的展示。

tableView索引的生成需要回调代理方法:

//索引标题
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return self.sectionTitles;
}

//点击索引跳转到相应位置
-(NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
    
    NSIndexPath *selectIndexPath = [NSIndexPath indexPathForRow:0 inSection:index];
    
    if (![self.contentArrs[index] count]) {
        return 0;
        
    }else{
        
        [tableView scrollToRowAtIndexPath:selectIndexPath atScrollPosition:UITableViewScrollPositionNone animated:YES];
        
        return index;
    }
}

汉字拼音首字母排序/TableView右侧索引(类似通讯录功能)_第1张图片
demo-3.png

项目具体完整代码项目地址:【点击此处】

你可能感兴趣的:(汉字拼音首字母排序/TableView右侧索引(类似通讯录功能))