时间:2021-05-20
这里实现的是进入页面后直接在导航栏上显示搜索框(包含右侧取消按钮),并弹出键盘且搜索框为直接可输入状态(第一响应者),点击右侧取消按钮后收起键盘并返回上一页。
搜索页面
1.实现代理UISearchBarDelegate
@interface SearchViewController ()<UISearchBarDelegate>2.创建一个UISearchBar为属性
@property (nonatomic, strong) UISearchBar *searchBar;3.进入页面后弹起键盘和离开页面前收起键盘
- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; if (!_searchBar.isFirstResponder) { [self.searchBar becomeFirstResponder]; }}- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [self.searchBar resignFirstResponder];}4.具体实现
- (void)setBarButtonItem{ //隐藏导航栏上的返回按钮 [self.navigationItem setHidesBackButton:YES]; //用来放searchBar的View UIView *titleView = [[UIView alloc] initWithFrame:CGRectMake(5, 7, self.view.frame.size.width, 30)]; //创建searchBar UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(titleView.frame) - 15, 30)]; //默认提示文字 searchBar.placeholder = @"搜索内容"; //背景图片 searchBar.backgroundImage = [UIImage imageNamed:@"clearImage"]; //代理 searchBar.delegate = self; //显示右侧取消按钮 searchBar.showsCancelButton = YES; //光标颜色 searchBar.tintColor = UIColorFromRGB(0x595959); //拿到searchBar的输入框 UITextField *searchTextField = [searchBar valueForKey:@"_searchField"]; //字体大小 searchTextField.font = [UIFont systemFontOfSize:15]; //输入框背景颜色 searchTextField.backgroundColor = [UIColor colorWithRed:234/255.0 green:235/255.0 blue:237/255.0 alpha:1]; //拿到取消按钮 UIButton *cancleBtn = [searchBar valueForKey:@"cancelButton"]; //设置按钮上的文字 [cancleBtn setTitle:@"取消" forState:UIControlStateNormal]; //设置按钮上文字的颜色 [cancleBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [titleView addSubview:searchBar]; self.searchBar = searchBar; self.navigationItem.titleView = titleView;}5.实现代理方法
#pragma mark - UISearchBarDelegate- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{ return YES;}- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar { searchBar.showsCancelButton = YES;}- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{ NSLog(@"SearchButton");}- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ [self.searchBar resignFirstResponder]; [self.navigationController popViewControllerAnimated:YES];}- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar{ searchBar.showsCancelButton = YES;}- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ NSString *inputStr = searchText; [self.results removeAllObjects]; for (ElderModel *model in self.dataArray) { if ([model.name.lowercaseString rangeOfString:inputStr.lowercaseString].location != NSNotFound) { [self.results addObject:model]; } } [self.tableView reloadData];}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
IOSUISearchBar详解iPhone开发之UISearchBar学习是本文要学习的内容,主要介绍了UISearchBar的使用,不多说,我们先来看详细内
本文实例讲述了Android开发之PopupWindow创建弹窗、对话框的方法。分享给大家供大家参考,具体如下:简介:PopupWindow可创建类似对话框风格
本文实例讲述了Android开发之缓冲dialog对话框创建、使用与封装操作。分享给大家供大家参考,具体如下:packagecom.hstech.handysy
UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle、text、placeholder等等。但是这些属性显然不足矣满足我们的开
创建一个示例数据框:importpandasaspddf=pd.DataFrame([['乔峰','男',95,'降龙十八掌','主角'],['虚竹','男',