1.实现 UISearchDisplayDelegate
searchResult = [[NSMutableArray alloc]initWithCapacity:0];
mySearchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
myTableView.tableHeaderView = mySearchBar;
UISearchDisplayController *mySearchCtl = [[UISearchDisplayController alloc]initWithSearchBar:mySearchBar contentsController:self];
mySearchCtl.searchResultsDataSource = self;
mySearchCtl.searchResultsDelegate = self;
2.- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
if(tableView != myTableView)
{
return @"搜索结果";
}
return [NSString stringWithFormat:@"%c",section+'A'];
}
3.- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
if(tableView != myTableView)
{
return 1;
}
return [nameArray count];
}
4.- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if(tableView != myTableView)
{
NSString *searchWord = mySearchBar.text;
[searchResult removeAllObjects];
for(NSArray *eachArray in nameArray)
{
for(NSString *name in eachArray)
{
//不分大小写
NSRange myRange = [name rangeOfString:searchWord options:NSCaseInsensitiveSearch];
if(myRange.length == 0)
{
continue;
}
[searchResult addObject:name];
}
}
return [searchResult count];
}
return [[nameArray objectAtIndex:section]count];
}
5.- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *mycell = [tableView dequeueReusableCellWithIdentifier:@"mycell"];
if(mycell==nil)
{
mycell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"mycell"];
}
if(tableView != myTableView)
{
mycell.textLabel.text = [searchResult objectAtIndex:indexPath.row];
return mycell;
}
mycell.textLabel.text = [[nameArray objectAtIndex:indexPath.section]objectAtIndex:indexPath.row];
return mycell;
}