iOS UISearchController的使用
2015-12-22 10:52
691 查看
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self setTabBarHidden:YES withAnimation:YES];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.mySearchController.searchBar setHidden:YES];
[self setTabBarHidden:NO withAnimation:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setExtraCellLineHidden:self.myTableViewW
];
[self initCellInfo];
[self initTableView];
[self initTitleBar];
[self initHeader];
[self initSearchBar];
}
- (void)initSearchBar{
self.mySearchController=[[UISearchController alloc]initWithSearchResultsController:nil];
self.mySearchController.searchBar.frame=CGRectMake(100, 10, 200, 44);
self.myTableViewW.tableHeaderView=self.mySearchController.searchBar;
[self.mySearchController.searchBar sizeToFit];
self.mySearchController.searchResultsUpdater=self;
self.mySearchController.dimsBackgroundDuringPresentation=NO;
self.mySearchController.hidesNavigationBarDuringPresentation=NO;
self.mySearchController.searchBar.placeholder=@"输入赤兔ID或者昵称查询";
[self presentViewController:self.mySearchController animated:YES completion:nil];
}
- (void)initHeader{
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self hiddenkeyBoard];
}
- (void)hiddenkeyBoard{
[self.myTextField resignFirstResponder];
}
- (void)initTitleBar{
self.title=@"添加朋友";
}
- (void)initCellInfo{
NSMutableArray *cellInfoArray=[[NSMutableArray alloc]init];
NSMutableArray *nickNameArray=[[NSMutableArray alloc]init];
NSMutableArray *IDArray=[[NSMutableArray alloc]init];
CellInfo_t *cellInfo=[self newCellInfo];
cellInfo.image=@"http://b.hiphotos.baidu.com/image/w%3D310/sign=a0eb5ed6d52a60595210e71b1835342d/2fdda3cc7cd98d10f00dbe2e233fb80e7aec90d0.jpg";
cellInfo.nickName=@"呱呱呱";
cellInfo.ID=@"1";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://c.hiphotos.baidu.com/image/w%3D310/sign=4632f6f379cb0a4685228d385b62f63e/902397dda144ad341343938ed2a20cf431ad853e.jpg";
cellInfo.nickName=@"任溶溶";
cellInfo.ID=@"2";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://tao.goulew.com/users/upfile/201403/20140305222531big.jpg";
cellInfo.nickName=@"小安江湖";
cellInfo.ID=@"3";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://d.hiphotos.baidu.com/image/w%3D310/sign=4276550c5e6034a829e2be80fb1249d9/d000baa1cd11728b9c43502fcafcc3cec3fd2c55.jpg";
cellInfo.nickName=@"路见不平";
cellInfo.ID=@"4";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
self.nickNameArray=nickNameArray;
self.cellInfoArray=cellInfoArray;
self.IDArray=IDArray;
}
- (CellInfo_t *)newCellInfo{
CellInfo_t *info=[CellInfo_t new];
return info;
}
- (void)initTableView{
self.myTableViewW.delegate=self;
self.myTableViewW.dataSource=self;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.mySearchController.active){
return self.searchList.count;
}else{
return self.cellInfoArray.count;
}
}
- (CellInfo_t *)getCellInfo:(NSInteger)row{
return self.cellInfoArray[row];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 80;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CellInfo_t *cellInfo=[self getCellInfo:indexPath.row];
static NSString *cellID=@"RRAddFriendCell";
RRAddFriendCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];
if (cell==nil) {
cell=[[[NSBundle mainBundle]loadNibNamed:cellID owner:self options:nil]lastObject];
}
if(self.mySearchController.active){
cell.mynickName=self.searchList[indexPath.row];
}else{
PAImageView *image=[[PAImageView alloc]initWithFrame:cell.myimage.bounds backgroundProgressColor:[UIColor lightGrayColor] progressColor:nil image:nil];
[cell.myimage addSubview:image];
[image setImageURL:cellInfo.image];
cell.mynickName=cellInfo.nickName;
cell.myID=cellInfo.ID;
}
[cell.myapplyAdd setTitle:@"申请添加" forState:UIControlStateNormal];
[cell.myapplyAdd addTarget:self action:@selector(applyAdd) forControlEvents:UIControlEventTouchUpInside];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
return cell;
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
return YES;
}
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{
NSString *searchString = self.mySearchController.searchBar.text;
NSPredicate *preicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@", searchString];//用predicateWithFormat创建一个谓词,name作为键路径
if (self.searchList!= nil) {
[self.searchList removeAllObjects];
}
//过滤数据
self.searchList= [NSMutableArray arrayWithArray:[self.nickNameArray filteredArrayUsingPredicate:preicate]];
[self.myTableViewW reloadData];
}
- (void)applyAdd{
NSLog(@"申请添加");
}
- (void)setExtraCellLineHidden: (UITableView *)tableView{
UIView *view =[ [UIView alloc]init];
view.backgroundColor = [UIColor clearColor];
[tableView setTableFooterView:view];
[tableView setTableHeaderView:view];
}
-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
[searchBar endEditing:YES];
return YES;
}
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar endEditing:YES];
}
[super viewWillAppear:animated];
[self setTabBarHidden:YES withAnimation:YES];
}
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.mySearchController.searchBar setHidden:YES];
[self setTabBarHidden:NO withAnimation:YES];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self setExtraCellLineHidden:self.myTableViewW
];
[self initCellInfo];
[self initTableView];
[self initTitleBar];
[self initHeader];
[self initSearchBar];
}
- (void)initSearchBar{
self.mySearchController=[[UISearchController alloc]initWithSearchResultsController:nil];
self.mySearchController.searchBar.frame=CGRectMake(100, 10, 200, 44);
self.myTableViewW.tableHeaderView=self.mySearchController.searchBar;
[self.mySearchController.searchBar sizeToFit];
self.mySearchController.searchResultsUpdater=self;
self.mySearchController.dimsBackgroundDuringPresentation=NO;
self.mySearchController.hidesNavigationBarDuringPresentation=NO;
self.mySearchController.searchBar.placeholder=@"输入赤兔ID或者昵称查询";
[self presentViewController:self.mySearchController animated:YES completion:nil];
}
- (void)initHeader{
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self hiddenkeyBoard];
}
- (void)hiddenkeyBoard{
[self.myTextField resignFirstResponder];
}
- (void)initTitleBar{
self.title=@"添加朋友";
}
- (void)initCellInfo{
NSMutableArray *cellInfoArray=[[NSMutableArray alloc]init];
NSMutableArray *nickNameArray=[[NSMutableArray alloc]init];
NSMutableArray *IDArray=[[NSMutableArray alloc]init];
CellInfo_t *cellInfo=[self newCellInfo];
cellInfo.image=@"http://b.hiphotos.baidu.com/image/w%3D310/sign=a0eb5ed6d52a60595210e71b1835342d/2fdda3cc7cd98d10f00dbe2e233fb80e7aec90d0.jpg";
cellInfo.nickName=@"呱呱呱";
cellInfo.ID=@"1";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://c.hiphotos.baidu.com/image/w%3D310/sign=4632f6f379cb0a4685228d385b62f63e/902397dda144ad341343938ed2a20cf431ad853e.jpg";
cellInfo.nickName=@"任溶溶";
cellInfo.ID=@"2";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://tao.goulew.com/users/upfile/201403/20140305222531big.jpg";
cellInfo.nickName=@"小安江湖";
cellInfo.ID=@"3";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
cellInfo=[self newCellInfo];
cellInfo.image=@"http://d.hiphotos.baidu.com/image/w%3D310/sign=4276550c5e6034a829e2be80fb1249d9/d000baa1cd11728b9c43502fcafcc3cec3fd2c55.jpg";
cellInfo.nickName=@"路见不平";
cellInfo.ID=@"4";
[cellInfoArray addObject:cellInfo];
[nickNameArray addObject:cellInfo.nickName];
[IDArray addObject:cellInfo.ID];
self.nickNameArray=nickNameArray;
self.cellInfoArray=cellInfoArray;
self.IDArray=IDArray;
}
- (CellInfo_t *)newCellInfo{
CellInfo_t *info=[CellInfo_t new];
return info;
}
- (void)initTableView{
self.myTableViewW.delegate=self;
self.myTableViewW.dataSource=self;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (self.mySearchController.active){
return self.searchList.count;
}else{
return self.cellInfoArray.count;
}
}
- (CellInfo_t *)getCellInfo:(NSInteger)row{
return self.cellInfoArray[row];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 80;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
CellInfo_t *cellInfo=[self getCellInfo:indexPath.row];
static NSString *cellID=@"RRAddFriendCell";
RRAddFriendCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];
if (cell==nil) {
cell=[[[NSBundle mainBundle]loadNibNamed:cellID owner:self options:nil]lastObject];
}
if(self.mySearchController.active){
cell.mynickName=self.searchList[indexPath.row];
}else{
PAImageView *image=[[PAImageView alloc]initWithFrame:cell.myimage.bounds backgroundProgressColor:[UIColor lightGrayColor] progressColor:nil image:nil];
[cell.myimage addSubview:image];
[image setImageURL:cellInfo.image];
cell.mynickName=cellInfo.nickName;
cell.myID=cellInfo.ID;
}
[cell.myapplyAdd setTitle:@"申请添加" forState:UIControlStateNormal];
[cell.myapplyAdd addTarget:self action:@selector(applyAdd) forControlEvents:UIControlEventTouchUpInside];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
return cell;
}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
return YES;
}
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController{
NSString *searchString = self.mySearchController.searchBar.text;
NSPredicate *preicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[c] %@", searchString];//用predicateWithFormat创建一个谓词,name作为键路径
if (self.searchList!= nil) {
[self.searchList removeAllObjects];
}
//过滤数据
self.searchList= [NSMutableArray arrayWithArray:[self.nickNameArray filteredArrayUsingPredicate:preicate]];
[self.myTableViewW reloadData];
}
- (void)applyAdd{
NSLog(@"申请添加");
}
- (void)setExtraCellLineHidden: (UITableView *)tableView{
UIView *view =[ [UIView alloc]init];
view.backgroundColor = [UIColor clearColor];
[tableView setTableFooterView:view];
[tableView setTableHeaderView:view];
}
-(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar{
[searchBar endEditing:YES];
return YES;
}
-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar endEditing:YES];
}
相关文章推荐
- Maya Mel GUI入门
- NSValue可以将结构转化为对象,并把它存储在集合中。
- 【译】UI设计基础(UI Design Basics)--启动与停止(Starting and Stopping)(五)
- EASYUI 表单(FORM)用法
- ios 触摸事件无法响应之UIViewController的误用
- Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 10
- Android Ui之Recycle View学习
- 一个关于NGUI的点击和按键响应的Bug
- iOS开发~UI布局(三)深入理解autolayout
- 如何让UITableview的sectionHeader随着tableview一起滑动
- iOS开发~UI布局(二)storyboard中autolayout和size class的使用详解
- UIAlertView常用属性(9.0起失效)
- iOS开发~UI布局(一)初探Size Class
- Arduino IDE for ESP8266
- 22个值得收藏的Android开源代码-UI篇
- UGUI 之 判断鼠标或者手指是否点击在UI上
- UIMenuItem
- JPQL的命名查询@NamedQuery
- MUI底部选项卡分类
- RDLC An unexpected error occurred while compiling expressions. Native compiler return value: '-1073741511'