首页 > 代码库 > iOS 搜索框控件 最简单的dome
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
iOS 搜索框控件 最简单的dome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。