IOS

iOS 搜索结果关键字变色

2017-12-26  本文已影响327人  莫道别离伤

效果图

未命名.gif

功能

1. 将英文字母当做全拼匹配中文
2. 将英文字母当做拼音首字母匹配中文
3. 中英数字特殊字符混合匹配

Demo

实现思路

近日,需要为App的搜索功能添加快速匹配列表,具体需求如下:

  1. 输入英文字母匹配对应英文
    例如 输入a 匹配到 ask中的a 将a变色
  2. 输入中文匹配中文
  3. 输入英文字母匹配对应中文首字母
    例如输入sk 匹配到 失控 时刻 时空
  4. 输入英文匹配对应中文全拼 (划重点)
    例如输入 ih 可以匹配到 帝豪(dihao) 你好(nihao)
  5. 混合匹配下基本正确(允许出现少许问题)

解决需求

1:直接调用rangeofstring方法得到需要变色区域即可
2:先将双方字符串统一大小后,rangeofstring得到变色区域即可
3:

4:

94001D19-7FC7-4A9A-A68E-BE75663A436B.png

如图得到的字典如下

@{
    0:[0,1],//你  ni
    1:[2,3,4],//好 hao
    2:[5],//
    3:[6,7,8,9],//少 shao
    4:[10,11,12,13] //年
};

5:因为在需求4的解决方案中对应的特殊字符也写入了全拼字符串,则已经可以解决此需求

其中遭遇的坑

上一篇 下一篇

猜你喜欢

热点阅读