iOS 搜索框控件 最简单的dome
刚学习搜索框控件,写了个最简单的dome
#import <UIKit/UIKit.h>
.h
@interface ViewController : UIViewController<UISearchBarDelegate,UISearchDisplayDelegate,UITableViewDataSource,UITableViewDelegate> @property (nonatomic,strong) UISearchDisplayController *searchDisplayC;//搜索框控件控制器 @property (weak, nonatomic) IBOutlet UISearchBar *searchBar;//搜索条 @property (nonatomic,strong) NSArray *allArray;//所有数据数组 @property (nonatomic,strong) NSMutableArray *filterArray;//搜索出来的数据数组 @end
#import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize searchBar; @synthesize searchDisplayC; @synthesize filterArray; @synthesize allArray; - (void)viewDidLoad { [super viewDidLoad]; allArray = [NSArray arrayWithObjects:@"济南",@"天津",@"潍坊",@"上海",@"北京",@"青岛",@"台湾",@"钓鱼岛", nil]; searchDisplayC = [[UISearchDisplayController alloc]initWithSearchBar:searchBar contentsController:self]; searchDisplayC.delegate = self; searchDisplayC.searchResultsDelegate = self; searchDisplayC.searchResultsDataSource = self; // Do any additional setup after loading the view, typically from a nib. } #pragma mark - tabledelegete - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return filterArray.count; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *identifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; } cell.textLabel.text = [filterArray objectAtIndex:indexPath.row]; [cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //选择后要做的事情 NSLog(@"已选择"); } #pragma mark - searchdelegate - (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { [filterArray removeAllObjects]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",searchString];//用于过滤 filterArray = [NSMutableArray arrayWithArray:[allArray filteredArrayUsingPredicate:predicate]]; return YES; } - (BOOL) searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption { //当scope改变时调用 return YES; } @end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。