其他分享
首页 > 其他分享> > iOS搜索框

iOS搜索框

作者:互联网

原文链接:https://my.oschina.net/zyboy/blog/617419
//创建用于展示搜索结果的表vc实例
self.showResultVC = [[ShowResultTableViewController alloc]init];
//创建搜索控制器的实例
self.searchController = [[UISearchController alloc]initWithSearchResultsController:self.showResultVC];
//设置搜索条的尺寸为自适应
[self.searchController.searchBar sizeToFit];
//设置搜索条中的分段类别
self.searchController.searchBar.scopeButtonTitles = @[@"设备",@"软件",@"其他"];
//为当前表头视图添加searchBar
self.tableView.tableHeaderView = self.searchController.searchBar;
//设置搜索控制器的结果更新代理对象
self.searchController.searchResultsUpdater = self;
//允许当前界面上切换展示数据的上下文对象
//此属性设置为yes,才能在当前界面上切换
//由另一个表视图来显示搜索结果
self.definesPresentationContext = YES;
//为了点击seacherBar上的类别按钮时,也能立即响应
//所以需要设置searchBar的代理
self.searchController.searchBar.delegate = self;

pragma mark - UISearchBarDelegate协议

-(void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
{
[self updateSearchResultsForSearchController:self.searchController];
}

pragma mark - UISearchrResultUpdating协议

//只要用户在文本框中输入的搜索文本发生变化
//则自动执行此方法
-(void)updateSearchResultsForSearchController:(UISearchController *)searchController
{
//根据用户输入的文字,逐一比对商品信息
//将商品信息显示到展示结果的vc中

//从searchBar中获取用户在文本框中输入的文字
NSString *searchText = searchController.searchBar.text;

//获取用户选择的类别按钮
NSInteger selectedButtonIndex = searchController.searchBar.selectedScopeButtonIndex;

//到self.allProducts中逐一比对数据
NSMutableArray *resultArray = [NSMutableArray array];
for (Product *p in self.allProducts) {
    //判断商品名种包含输入的搜索文本的范围
    //@"abcdefg"    @"def"
    //length:3 location:3
    NSRange range = [p.name rangeOfString:searchText];
    //如果名称匹配,且类别相同
    //则将此商品记录到结果数组中
    if (range.length>0 && p.type==selectedButtonIndex) {
        [resultArray addObject:p];
    }

}

//将要展示的数据结果 给showResultVC传过去
self.showResultVC.resultArray = resultArray;

//更新视图显示数据
[self.showResultVC.tableView reloadData];

}

转载于:https://my.oschina.net/zyboy/blog/617419

标签:searchController,self,iOS,resultArray,搜索,showResultVC,searchBar
来源: https://blog.csdn.net/chunbo4007/article/details/100677723