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

-(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];});});
}

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

- (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;
}

ios搜索(可实现模糊搜索 支持拼音检索 首字母等)相关推荐

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

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

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

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

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

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

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

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

  5. select2下拉搜索框匹配汉字全拼及首字母

    (注:原文出自qq_33142257的博客http://blog.csdn.net/qq_33142257/article/details/52575823) 最近,项目中需要在使用选择搜索框时进行汉 ...

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

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

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

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

  8. android 输入模糊匹配_Android通讯录模糊匹配,搜索实现高亮关键字(号码、首字母、简拼、全拼)...

    功能展示: 2017-05-27-09mz02.gif 2017-05-27-09mz04.gif 2017-05-27-09mz03.gif 2017-05-27-08mz01.gif 功能要求:通 ...

  9. 获得汉字拼音的首字母

    获得汉字拼音的首字母: public string GetPYChar(string c) {byte[] array = new byte[2]; array = System.Text.Encod ...

  10. CSS实现英文或拼音单词首字母大写

    CSS实现英文或拼音单词首字母大写,只需要在css样式中加入: text-transform: capitalize 即可. 测试代码如下: <!doctype html> <htm ...

最新文章

  1. Mac关于Node版本升降
  2. ngixn+tomcat负载均衡 动静分离配置 (nginx反向代理)
  3. mysql truncate table命令使用总结
  4. Hive 禁止提交 大范围磁盘扫描任务(禁止提交where条件包含未分区过滤)
  5. 用python编程输入三角形的三条边判断是否构成三角形_vb三角形编程输入三条边,判断能否构成三角形.看我的编程是否有问题,...
  6. 九零后女孩币圈变形记
  7. svn利用钩子脚本功能实现代码同步到web目录
  8. 根据银行卡账号获取所属银行php
  9. 蛮牛精选七款Unity插件
  10. python数据标注工具_使用Python实现简易的数据标注工具
  11. 计算机3大总线名词解释,计算机名词解释-- 总线.doc
  12. NFC Antenna Tool,便捷的 NFC 电路 和 NFC 线圈设计工具
  13. 【动态】码绘VS手绘的对比——有点萌的开关
  14. Python将阿拉伯数字转化为中文大写
  15. OpenCV——Python:像素调整、图片裁剪、形状与文字设置3
  16. 【目标流畅阅读文献_语法篇】1.3简单句_动词时态
  17. 手机酷派4G5316 5313s 黑砖 求转成功 9008端口 9006端口 少走弯路选对镜像...
  18. 六度分离 ( floyd )
  19. Android Studio开发APP
  20. 5G移动性增强技术分析

热门文章

  1. php codesniffer,PHP 系列:代码规范之 Code Sniffer
  2. 企业级Web报表工具告诉你财务要做哪些数据分析
  3. PTA 数据库 mysql 10-198 C1-2新增订单统计信息
  4. nodejs对PDF合并的几种方法
  5. os 存储器的结构层次
  6. java 线程休眠 假死,java多线程-jstack线程阻塞问题排查
  7. 建筑工地人脸识别门禁通道闸机如何安装
  8. 一款实用工具:免费短信验证码SDK
  9. 经验分享 针式打印机经典案例分析
  10. 《人生若只如初见——古典诗词的美丽与哀愁》--安意如