iOS开发 - 搜索(模糊搜索 支持拼音检索 首字母等)
一、搜框中输入关键字的事件响应
-(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开发 - 搜索(模糊搜索 支持拼音检索 首字母等)相关推荐
- wp手机开发之获取汉字拼音的首字母
wp手机开发之获取汉字拼音的首字母 本文章来介绍一下关于wp手机开发之获取汉字拼音的首字母,以前也有讲过获取汉字全部拼音下面我们来看看教程吧. 今天介绍一种新的方法,使用codeplex上开源的项目G ...
- 一个简单的汉字搜索匹配示例(支持拼音、首字母简写)
在社交应用中,很多场景下需要用到搜索,以微信的搜索通讯录为例.好友自己有昵称,我们可能给他/她备注一个昵称,在输入:拼间.首字母.原文时都应该能匹配到(匹配优先是备注然后才是原来的昵称).这里以'芈月 ...
- 搜索功能(支持全拼,首字母,不区分大小写,关键字变色等)
上次写的可能有人说阅读性太差,所以改成这种编辑了 用到的工具主要是pinyin4j(compile 'com.belerweb:pinyin4j:2.5.1'),将字符串转化成首字拼写或全拼,然后是计 ...
- vue+iview实现拼音、首字母、汉字模糊搜索
最近项目做的后台管理系统中,要求实现一个支持拼音.首字母和汉字模糊搜索的下拉框.项目是用vue+iview做的,iview中有select远程搜索.但是,iview框架也有弊病就是会将输入框中的输入值 ...
- 【ios开发/Xcode】实现关键字检索
[ios开发/Xcode]实现关键字检索 实现效果 源代码 实现效果 源代码 注:@开头的这些代码都是需要关联控键,都需要自行在故事板中(Storyboards)进行关联 import UIKitcl ...
- 支持拼音检索的TextBox扩展控件-使用
我的上一个支持拼音检索的TextBox扩展控件,由于有些网友留言和发邮件问如何用, 如:菜鸟AAA等当时想到肯定大家都会用,就没上传示例程序. 原文为:http://www.cnblogs.com/w ...
- 实现下拉框的汉字、拼音、首字母大小写,全拼检索选项
调用这个工具类,可以实现下拉框的汉字.拼音.首字母大小写,全拼检索选项 import java.util.Arrays;import net.sourceforge.pinyin4j.PinyinHe ...
- C#获取汉字拼音或首字母
C#获取汉字拼音或首字母 获取汉字拼音 直接上代码 /// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> // ...
- Android通讯录模糊匹配搜索实现(号码、首字母、简拼、全拼)
Android通讯录模糊匹配搜索实现(号码.首字母.简拼.全拼) 2013年12月10日 工作记录 小巫在工作中碰到一个需求,要求实现通讯录联系人的搜索,获取联系人的方式有好几种,我都有点混乱了,下面 ...
- select2中文选项通过拼音或者首字母快速定位选项
使用select2的时候,想通过拼音或者首字母检索下拉的选项,但是又没有通过ajax等技术去实现 这时候可以试试用这种伪方法~ 这种方法的好处就是快.方便使用 默认select2如图: 代码: < ...
最新文章
- Receive本地下载安装方法
- 『ORACLE』 配置共享服务器(11g)
- php 模板制作教程,Destoon模板制作简明教程_PHP教程
- double类型占几个字节_MongoDB 中的数据类型
- mysql sphfiks_使用sphinx索引mysql数据
- KNN分类python实现
- 基础—机器学习—softMax regression
- python发送以太网报文_python之分解以太帧
- dw写HTML怎么设置背景颜色,dreamweaver cs6设置div背景颜色的具体操作教程
- echarts最简单的南丁格尔玫瑰图+图例
- linux如何运行rpm,LINUX下RPM的使用方法
- excel如何批量查询ip归属地?
- php rabbit pie broke,英语拟声词大全
- Linux虚拟机连接外网
- WHQL徽标认证申请流程
- 江苏省计算机Python二级考试 总结
- PCB封装欣赏了解之旅(下篇)—— 常用集成电路
- 总结一下自己常用的软件和网站
- 手机安装ubuntu
- [css]switch开关按钮,适用于移动端和IE9火狐谷歌