假如在ViewDidLoad中往页面中添加一个UITextField来输入检索内容
UITextField *searchText=[[UITextField alloc]init];
searchText.frame=CGRectMake(0, 0, 250, 30);
searchText.placeholder=@"输入搜索内容";
searchText.font=[UIFont systemFontOfSize:15];
searchText.textColor=[UIColor redColor];
searchText.borderStyle=UITextBorderStyleRoundedRect;
searchText.delegate=self;
searchText.returnKeyType = UIReturnKeyDone;
[searchText addTarget:self action:@selector(search:) forControlEvents:UIControlEventEditingChanged];
// [self.view addSubview:searchText];
self.navigationItem.titleView = searchText;
-(void)search:(UITextField *)textField{ if ([textField.text length] == 0) { [self viewDidLoad]; [self.fontsTableViwe reloadData]; return; } NSString *regex = [NSString stringWithFormat:@"SELF LIKE[c]'%@*'", textField.text]; NSPredicate *predicate = [NSPredicate predicateWithFormat:regex]; NSArray *array=[self.fontsArray filteredArrayUsingPredicate:predicate];
//重新对检索后的数组进行分组 self.fontsKeysDic=[[NSMutableDictionary alloc]init]; self.fontsValuesArr=[[NSMutableArray alloc]init]; NSString *fontsHeader=@"A"; for (NSString *fontsValue in array) { if ([fontsValue hasPrefix:fontsHeader]) { [self.fontsValuesArr addObject:fontsValue]; } else{ //另一组 fontsHeader=[fontsValue substringToIndex:1]; self.fontsValuesArr=[[NSMutableArray alloc]init]; [self.fontsValuesArr addObject:fontsValue]; } [self.fontsKeysDic setObject:self.fontsValuesArr forKey:fontsHeader]; } //end 分组完成
[self.fontsTableViwe reloadData]; }