全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

iOS tabview如何添加字母索引

本文实例为大家分享了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小时内与您取得联系。