一、搜框中输入关键字的事件响应

-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{NSLog(@"输入的关键字是---%@---%lu",searchText,(unsigned long)searchText.length);//需要事先清空存放搜索结果的数组[self.resultArray removeAllObjects];//加个多线程,否则数量量大的时候,有明显的卡顿现象//这里最好放在数据库里面再进行搜索,效率会更快一些dispatch_queue_t globalQueue = dispatch_get_global_queue(0, 0);dispatch_async(globalQueue, ^{if (searchText!=nil && searchText.length>0) {//遍历需要搜索的所有内容,其中self.dataArray为存放总数据的数组for (DataModel *model in self.dataArray) {NSString *tempStr = model.content;//----------->把所有的搜索结果转成成拼音NSString *pinyin = [self transformToPinyin:tempStr];NSLog(@"pinyin--%@",pinyin);if ([pinyin rangeOfString:searchText options:NSCaseInsensitiveSearch].length >0 ) {//把搜索结果存放self.resultArray数组[self.resultArray addObject:model];}} }else{self.resultArray = [NSMutableArray arrayWithArray:self.dataArray];}//回到主线程dispatch_async(dispatch_get_main_queue(), ^{[_tableView reloadData];});});
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

二、获取汉字转成拼音字符串 通讯录模糊搜索 支持拼音检索 首字母 全拼 汉字 搜索

- (NSString *)transformToPinyin:(NSString *)aString
{//转成了可变字符串NSMutableString *str = [NSMutableString stringWithString:aString];CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);//再转换为不带声调的拼音CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStripDiacritics,NO);NSArray *pinyinArray = [str componentsSeparatedByString:@" "];NSMutableString *allString = [NSMutableString new];int count = 0;for (int  i = 0; i < pinyinArray.count; i++){for(int i = 0; i < pinyinArray.count;i++){if (i == count) {[allString appendString:@"#"];//区分第几个字母}[allString appendFormat:@"%@",pinyinArray[i]];}[allString appendString:@","];count ++;}NSMutableString *initialStr = [NSMutableString new];//拼音首字母for (NSString *s in pinyinArray){if (s.length > 0){[initialStr appendString:  [s substringToIndex:1]];}}[allString appendFormat:@"#%@",initialStr];[allString appendFormat:@",#%@",aString];return allString;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

iOS开发 - 搜索(模糊搜索 支持拼音检索 首字母等)相关推荐

  1. wp手机开发之获取汉字拼音的首字母

    wp手机开发之获取汉字拼音的首字母 本文章来介绍一下关于wp手机开发之获取汉字拼音的首字母,以前也有讲过获取汉字全部拼音下面我们来看看教程吧. 今天介绍一种新的方法,使用codeplex上开源的项目G ...

  2. 一个简单的汉字搜索匹配示例(支持拼音、首字母简写)

    在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例.好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间.首字母.原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称).这里以'芈月 ...

  3. 搜索功能(支持全拼,首字母,不区分大小写,关键字变色等)

    上次写的可能有人说阅读性太差,所以改成这种编辑了 用到的工具主要是pinyin4j(compile 'com.belerweb:pinyin4j:2.5.1'),将字符串转化成首字拼写或全拼,然后是计 ...

  4. vue+iview实现拼音、首字母、汉字模糊搜索

    最近项目做的后台管理系统中,要求实现一个支持拼音.首字母和汉字模糊搜索的下拉框.项目是用vue+iview做的,iview中有select远程搜索.但是,iview框架也有弊病就是会将输入框中的输入值 ...

  5. 【ios开发/Xcode】实现关键字检索

    [ios开发/Xcode]实现关键字检索 实现效果 源代码 实现效果 源代码 注:@开头的这些代码都是需要关联控键,都需要自行在故事板中(Storyboards)进行关联 import UIKitcl ...

  6. 支持拼音检索的TextBox扩展控件-使用

    我的上一个支持拼音检索的TextBox扩展控件,由于有些网友留言和发邮件问如何用, 如:菜鸟AAA等当时想到肯定大家都会用,就没上传示例程序. 原文为:http://www.cnblogs.com/w ...

  7. 实现下拉框的汉字、拼音、首字母大小写,全拼检索选项

    调用这个工具类,可以实现下拉框的汉字.拼音.首字母大小写,全拼检索选项 import java.util.Arrays;import net.sourceforge.pinyin4j.PinyinHe ...

  8. C#获取汉字拼音或首字母

    C#获取汉字拼音或首字母 获取汉字拼音 直接上代码 /// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> // ...

  9. Android通讯录模糊匹配搜索实现(号码、首字母、简拼、全拼)

    Android通讯录模糊匹配搜索实现(号码.首字母.简拼.全拼) 2013年12月10日 工作记录 小巫在工作中碰到一个需求,要求实现通讯录联系人的搜索,获取联系人的方式有好几种,我都有点混乱了,下面 ...

  10. select2中文选项通过拼音或者首字母快速定位选项

    使用select2的时候,想通过拼音或者首字母检索下拉的选项,但是又没有通过ajax等技术去实现 这时候可以试试用这种伪方法~ 这种方法的好处就是快.方便使用 默认select2如图: 代码: < ...

最新文章

  1. Receive本地下载安装方法
  2. 『ORACLE』 配置共享服务器(11g)
  3. php 模板制作教程,Destoon模板制作简明教程_PHP教程
  4. double类型占几个字节_MongoDB 中的数据类型
  5. mysql sphfiks_使用sphinx索引mysql数据
  6. KNN分类python实现
  7. 基础—机器学习—softMax regression
  8. python发送以太网报文_python之分解以太帧
  9. dw写HTML怎么设置背景颜色,dreamweaver cs6设置div背景颜色的具体操作教程
  10. echarts最简单的南丁格尔玫瑰图+图例
  11. linux如何运行rpm,LINUX下RPM的使用方法
  12. excel如何批量查询ip归属地?
  13. php rabbit pie broke,英语拟声词大全
  14. Linux虚拟机连接外网
  15. WHQL徽标认证申请流程
  16. 江苏省计算机Python二级考试 总结
  17. PCB封装欣赏了解之旅(下篇)—— 常用集成电路
  18. 总结一下自己常用的软件和网站
  19. 手机安装ubuntu
  20. [css]switch开关按钮,适用于移动端和IE9火狐谷歌

热门文章

  1. excel中实现多条件去重计数
  2. 数独大师级技巧_iphone数独大师级难题求解
  3. 安卓手机使用VNET抓包京东wskey
  4. Mir2Ei客户端真彩色支持
  5. IOS开源项目Telegram初试
  6. python求几何平均_算术平均、几何平均、调和平均、平方平均和移动平均
  7. 吴恩达采访人工智能大师实录
  8. 感受吴军博士的见识(一)
  9. C#中的get和set用法
  10. uclinux上任天堂游戏模拟器移植