iOS 搜索过滤

来源:互联网 发布:centos安装tomcat 编辑:程序博客网 时间:2024/05/29 18:18

1.第一步  构建searchBar

     

    _searchBar = [[EMSearchBaralloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,44)];

    _searchBar.delegate =self;

    _searchBar.placeholder =NSLocalizedString(@"search",@"Search");

    _searchBar.backgroundColor = [UIColorcolorWithRed:0.747green:0.756blue:0.751alpha:1.000];

    tableV.tableHeaderView =_searchBar;


2.第二步  构建控制器  继承代理<UISearchDisplayDelegate,UISearchBarDelegate>

    _searchController = [[UISearchDisplayControlleralloc]initWithSearchBar:_searchBarcontentsController:self];

    _searchController.searchResultsDataSource =self;

    _searchController.searchResultsDelegate =self;

    _searchController.searchResultsTableView.allowsMultipleSelection = YES;

    _searchController.delegate =self;


3.第三部  代理方法里  过滤数据

    

#pragma mark - UISearchDisplayDelegate

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{

    

    NSPredicate *predicate1 = [NSPredicatepredicateWithFormat:@"self.memberName contains [cd] %@", controller.searchBar.text];

    NSPredicate *predicate2 = [NSPredicatepredicateWithFormat:@"self.pinyinString contains [cd] %@", controller.searchBar.text];

    NSPredicate *predicate = [NSCompoundPredicateorPredicateWithSubpredicates:@[predicate1, predicate2]];

    if (searchModelArr !=nil) {

        [searchModelArrremoveAllObjects];

    }

    //过滤数据

    NSArray *tempArray = [modelArrfilteredArrayUsingPredicate:predicate];

    [searchModelArraddObjectsFromArray:tempArray];

    //刷新表格

    returnYES;

}


4.第四步  在tableVew  代理方法里记得判断 然后取不同的数据源

0 0
原创粉丝点击