iOS开发基础 - UISearchController
2016-03-25 10:48
561 查看
基本属性设置(一般依附于UITableView) self.searchCon = [[UISearchController alloc] initWithSearchResultsController:nil]; //设置代理 self.searchCon.searchResultsUpdater = self; //自适应 [self.searchCon.searchBar sizeToFit]; //点击搜索条隐藏导航条 self.searchCon.hidesNavigationBarDuringPresentation = NO; //是否隐藏灰色半透明背景 self.searchCon.dimsBackgroundDuringPresentation = NO; //把搜索条作为表头 self.tableView.tableHeaderView = self.searchCon.searchBar; //在同一个tableView上实现搜索显示结果 进行下面的设置 -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ //active是不是活跃状态 if (self.searchCon.active) { return self.searchArr.count; } return self.dataArr.count; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"id" forIndexPath:indexPath]; if (self.searchCon.active){ cell.textLabel.text = self.searchArr[indexPath.row]; } else{ cell.textLabel.text = self.dataArr[indexPath.row]; } return cell; } //当每次点击搜索框 每次输入字符时 都将实时调用这个方法 -(void)updateSearchResultsForSearchController:(UISearchController *)searchController{ [self.searchArr removeAllObjects]; NSLog(@"A"); /*方法1 for (NSString * str in self.dataArr) { NSRange range = [str rangeOfString:self.searchCon.searchBar.text]; //如果能找到 就存储到searchArr里面 if (range.location != NSNotFound) { [self.searchArr addObject:str]; } } */ //谓词 筛选数据的条件 就像数据库语法 可以过滤/查找某段范围的数据 NSPredicate * predict = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"SELF CONTAINS[c] '%@'",self.searchCon.searchBar.text]]; NSArray * arr = [self.dataArr filteredArrayUsingPredicate:predict]; //将查询结果 存储到搜索数组里 [self.searchArr addObjectsFromArray:arr]; [self.tableView reloadData]; // str为正则表达式 // NSPredicate * pre = [NSPredicate predicateWithFormat:@"SELF MATHES %@",str]; // BOOL b = [pre evaluateWithObject:@"要判断的字符串"]; }
相关文章推荐
- iOS开发基础 - UITableView
- iOS开发基础 - UICollectionView
- iOS开发基础 - UITouch的使用
- iOS-为UITableViewCell添加详情指示图,和说明文字
- iOS开发基础 - UITabBarController
- iOS开发基础-UIPageControl
- iOS开发基础- UIScrollView
- iOS开发基础-UIView的使用
- UIMenuController 实现长按显示自定义菜单功能
- iOS开发基础-UITextView&UITextField
- iOS开发基础-UIImageView&&UIImage的使用
- iOS开发基础-UIButton的使用
- iOS开发基础-UILabel的使用
- ui设计一
- UIViewController的生命周期及界面切换
- BZOJ 2037: [Sdoi2008]Sue的小球
- Building the System 编译安卓系统
- Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class
- Android之UI简介
- iOS UISearchController TableView 实现简单搜索功能