本文实例为大家分享了iOS tabview添加字母索引的具体代码,供大家参考,具体内容如下

文章转载自大神源码传送门
1、将汉字转换成首字母
//系统获取首字母
- (NSString *) pinyinFirstLetter:(NSString*)sourceString {
NSMutableString *source = [sourceString mutableCopy];
CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTransformMandarinLatin, NO);
CFStringTransform((__bridge CFMutableStringRef)source, NULL, kCFStringTransformStripDiacritics, NO);//这一行是去声调的
return source;
}
2、和tabview绑定的方法
#import "ViewController.h"
#import "BMChineseSort.h"
#import "Person.h"
@interface ViewController (){
NSMutableArray<Person *> *dataArray;
}
//排序后的出现过的拼音首字母数组
@property(nonatomic,strong)NSMutableArray *indexArray;
//排序好的结果数组
@property(nonatomic,strong)NSMutableArray *letterResultArr;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//模拟数据加载 dataArray中得到Person的数组
[self loadData];
//BMChineseSort 文件包含两个对单元格数据和右侧字母的数组排序函数
//根据Person对象的 name 属性 按中文 对 Person数组 排序
//每一个单元格的数据,排序好了的
self.indexArray = [BMChineseSort IndexWithArray:dataArray Key:@"name"];
//左侧的字母数组,已经排序好了
self.letterResultArr = [BMChineseSort sortObjectArray:dataArray Key:@"name"];
UITableView *table = [[UITableView alloc] initWithFrame:self.view.frame];
table.delegate = self;
table.dataSource = self;
[self.view addSubview:table];
}
//加载模拟数据
-(void)loadData{
NSArray *stringsToSort=[NSArray arrayWithObjects:
@"李白",@"张三",
@"重庆",@"重量",
@"调节",@"调用",
@"小白",@"小明",@"千珏",
@"黄家驹", @"鼠标",@"hello",@"多美丽",@"肯德基",@"##",
nil];
//模拟网络请求接收到的数组对象 Person数组
dataArray = [[NSMutableArray alloc] initWithCapacity:0];
for (int i = 0; i<[stringsToSort count]; i++) {
Person *p = [[Person alloc] init];
p.name = [stringsToSort objectAtIndex:i];
p.number = i;
[dataArray addObject:p];
}
}
#pragma mark - UITableView -
//section的titleHeader
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return [self.indexArray objectAtIndex:section];
}
//section行数
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return [self.indexArray count];
}
//每组section个数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [[self.letterResultArr objectAtIndex:section] count];
}
//section右侧index数组
-(NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{
return self.indexArray;
}
//点击右侧索引表项时调用 索引与section的对应关系
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index{
return index;
}
//返回cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CELL"];
if (cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CELL"];
}
//获得对应的Person对象<替换为你自己的model对象>
Person *p = [[self.letterResultArr objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
cell.textLabel.text = p.name;
return cell;
}
@end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# iOS
# tabview
# 字母索引
# iOS tableView右侧索引视图状态获取的方法实例
# 好了
# 首字母
# 单元格
# 自己的
# 加载
# 肯德基
# 鼠标
# 为你
# 大神
# 重庆
# 李白
# 大家分享
# 转换成
# 转载自
# 绑定
# 小明
# 具体内容
# 大家多多
# 这一行
# 每组
相关文章:
如何在Tomcat中配置并部署网站项目?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
如何配置支付宝与微信支付功能?
建站之星微信建站一键生成小程序+多端营销系统
如何选择最佳自助建站系统?快速指南解析优劣
手机网站制作与建设方案,手机网站如何建设?
制作网站公司那家好,网络公司是做什么的?
如何制作算命网站,怎么注册算命网站?
上海网站制作开发公司,上海买房比较好的网站有哪些?
网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?
网站制作软件有哪些,制图软件有哪些?
建站之星logo尺寸如何设置最合适?
如何快速上传自定义模板至建站之星?
如何快速登录WAP自助建站平台?
网站图片在线制作软件,怎么在图片上做链接?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
建站主机CVM配置优化、SEO策略与性能提升指南
制作网站外包平台,自动化接单网站有哪些?
高端企业智能建站程序:SEO优化与响应式模板定制开发
如何在建站宝盒中设置产品搜索功能?
如何用5美元大硬盘VPS安全高效搭建个人网站?
如何在橙子建站中快速调整背景颜色?
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何快速查询域名建站关键信息?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
,想在网上投简历,哪几个网站比较好?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
如何确保西部建站助手FTP传输的安全性?
广平建站公司哪家专业可靠?如何选择?
深圳网站制作的公司有哪些,dido官方网站?
活动邀请函制作网站有哪些,活动邀请函文案?
如何在IIS7上新建站点并设置安全权限?
如何破解联通资金短缺导致的基站建设难题?
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
Swift中swift中的switch 语句
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
制作宣传网站的软件,小红书可以宣传网站吗?
做企业网站制作流程,企业网站制作基本流程有哪些?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
如何撰写建站申请书?关键要点有哪些?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
定制建站方案优化指南:企业官网开发与建站费用解析
h5在线制作网站电脑版下载,h5网页制作软件?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
微信h5制作网站有哪些,免费微信H5页面制作工具?
北京专业网站制作设计师招聘,北京白云观官方网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
Swift开发中switch语句值绑定模式
*请认真填写需求信息,我们会在24小时内与您取得联系。