ios UISearchController
1.searchResultsUpdater:设置显示搜索结果的控制器
_mySearchController.searchResultsUpdater = self;
2.dimsBackgroundDuringPresentation:设置开始搜索时背景显示与否
_mySearchController.dimsBackgroundDuringPresentation = NO;
3.[searchBar sizeToFit]:设置searchBar位置自适应
[_mySearchController.searchBar sizeToFit];
4.设置searchBar为UITableView的头部视图
self.myTableView.tableHeaderView = self.mySearchController.searchBar;
5.UISearchResultsUpdating:代理方法
话不多说,直接上代码
@interface ViewController () @property (nonatomic, strong) UITableView *myTableView; @property (nonatomic, strong) NSMutableArray *visableArray; @property (nonatomic, strong) NSMutableArray *filterArray; @property (nonatomic, strong) NSMutableArray *dataSourceArray; @property (nonatomic, strong) UISearchController *mySearchController; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self initial]; } - (void)initial{ self.dataSourceArray = [NSMutableArray array]; self.filterArray = [NSMutableArray array]; for (int i = 0; i < 26; i++) { for (int j = 0; j < 4; j++) { NSString *str = [NSString stringWithFormat:@"%c%d", ‘A‘+i, j]; [self.dataSourceArray addObject:str]; } } self.visableArray = self.dataSourceArray; self.myTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; _myTableView.delegate = self; _myTableView.dataSource = self; [self.view addSubview:_myTableView]; self.mySearchController = [[UISearchController alloc] initWithSearchResultsController:nil]; _mySearchController.searchResultsUpdater = self; _mySearchController.dimsBackgroundDuringPresentation = NO; [_mySearchController.searchBar sizeToFit]; self.myTableView.tableHeaderView = self.mySearchController.searchBar; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ if (!_visableArray || _visableArray.count == 0) { _visableArray = _dataSourceArray; } return _visableArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"identifier"]; } cell.textLabel.text = [_visableArray objectAtIndex:indexPath.row]; return cell; } - (void)updateSearchResultsForSearchController:(UISearchController *)searchController{ NSString *filterString = searchController.searchBar.text; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains [c] %@", filterString]; self.visableArray = [NSMutableArray arrayWithArray:[self.dataSourceArray filteredArrayUsingPredicate:predicate]]; [self.myTableView reloadData]; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。