最近公司应要求写一个搜索功能,要求实现搜索结果中把搜索词批量标红处理,整了半天,后又断断续续的改进了一下
以下是具体实现:
#import <Foundation/Foundation.h>
@interface TiSearch : NSObject
+(NSMutableAttributedString *)getRedStringWith:(NSArray *)array andString:(NSString *)str;
@end
#import "TiSearch.h"
@implementation TiSearch
/**
* 返回个别标红的字符串
*
* @param array 要标红的文字数组
* @param str 整段文本
*
*/
+(NSMutableAttributedString *)getRedStringWith:(NSArray *)array andString:(NSString *)str{
NSString * allString = str;
NSMutableAttributedString *attStr =
[[NSMutableAttributedString alloc] initWithString:str];
// 设置高亮颜色
UIColor *color = [UIColor redColor];
for (int i = 0 ; i < array.count; i ++) {
//每次for循环都会对字符串进行截取,所以要保证for循环开始时字符串的完整性
str = allString;