本文的目的在于将每天开发中用到的小技巧记录下来,方便自己和大家查看。
我这里主要讲解的是通过代码动态的改变搜索时的文字显示状态,主要步骤:
1.获取源字符串 :originalString
2.实现下面的方法
//改变匹配字符串的字体颜色
- (NSMutableAttributedString *)changeAttributeStringWithOriginalString:(NSString *)originalString
{
NSMutableAttributedString *attriString = [[NSMutableAttributedString alloc]initWithString:originalString];
//检测输入的内容 在originalString的位置
NSRange range = [originalString rangeOfString:customSearchController.searchBar.text];
NSLog(@"range = %d length = %d",range.location,range.length);
//把筛选的字体颜色变为蓝色 注意kCTForegroundColorAttributeName已经不再使用 而用NSForegroundColorAttributeName代替
[attriString addAttribute:(NSString *)NSForegroundColorAttributeName
value:(id)[UIColor colorWithRed:0.0 green:185.0/255 blue:230.0/255 alpha:1.0]
range:range];
return attriString;
}
PS:customSearchController.searchBar.text :是UISearchController输入的内容。
PS:特别需要注意这句“把筛选的字体颜色变为蓝色 注意kCTForegroundColorAttributeName已经不再使用 而用NSForegroundColorAttributeName代替”,因为很多时候没处理好,会奔溃程序。
3.调用该方法即可达到效果
好了,以上就是这篇文章的内容,核心就是如何利用富文本改变我们搜索时的匹配字体颜色,方便用户识别。