iOS搜索框
2015-11-30 12:46
513 查看
//创建用于展示搜索结果的表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];
}
相关文章推荐
- iOS沙盒
- 从头来之【iOS及历史版本特性介绍】
- IOS消息推送
- iOS归档 反归档 Archiving Unarchiver
- iOS多线程技术
- IOS 截屏模糊 的问题
- iOS开发之数据存储(一)
- iOS开发--常见坑(横竖屏问题)
- 推荐一个iOS关于颜色的库-Wonderful
- iOS 将图片等比例缩放
- [IOS]SMS获取&验证手机验证码
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
- iOS开发之数据传递(一)
- ios审核加急,怎么快速上架
- iOS开发免费API接口
- iOS图片编辑(CIFilter)
- ios 开发日记 23 - Reveal使用步骤
- iOS URL Scheme 使用详解
- Nagios监控ActiveMQ插件开发和部署注意事项
- iOS获取设备型号、设备类型等信息