UISearchBar相关

前段时间做了一个UISearchBar相关的需求,今天也总结以下。

1、UISearchBar自定义背景、取消按钮中文设置

  1. UISearchBar *seachBar=[[UISearchBar alloc] init];
  2. //修改搜索框背景
  3. seachBar.backgroundColor=[UIColor clearColor];
  4. //去掉搜索框背景
  5. [[searchbar.subviews objectAtIndex:0]removeFromSuperview];
  6. for (UIView *subview in seachBar.subviews)
  7. {
  8. if ([subview isKindOfClass:NSClassFromString(@"UISearchBarBackground")])
  9. {
  10. [subview removeFromSuperview];
  11. break;
  12. }
  13. }
  14. //自定义背景
  15. UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"40-di.png"]];
  16. [searchBar insertSubview:imageView atIndex:1];
  17. //输入搜索文字时隐藏搜索按钮,清空时显示
  18. - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
  19. searchBar.showsScopeBar = YES;
  20. [searchBar sizeToFit];
  21. [searchBar setShowsCancelButton:YES animated:YES];
  22. return YES;
  23. }
  24. - (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
  25. searchBar.showsScopeBar = NO;
  26. [searchBar sizeToFit];
  27. [searchBar setShowsCancelButton:NO animated:YES];
  28. return YES;
  29. }
  30. //修改UISearchBar取消按钮中文字体
  31. for (id aa in [searchBar subviews]) {
  32. if ([aa isKindOfClass:[UIButton class]]) {
  33. UIButton *btn = (UIButton *)aa;
  34. [btn setTitle:@"取消" forState:UIControlStateNormal];
  35. }
  36. }

2、UISearchBar 的delegate方法

  1. #pragma mark 搜索控件
  2. //键盘搜索按钮被点击时触发
  3. - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
  4. UIStoryboard *mainStory = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
  5. FirstViewController *fVC = [mainStory instantiateViewControllerWithIdentifier:@"goFirstView"];
  6. fVC.showStr = self.searchBar.text;
  7. [self presentModalViewController:fVC animated:YES];
  8. }
  9. //搜索框输入内容改变时触发
  10. - (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
  11. }
  12. //焦点进入搜索框时触发
  13. - (void) searchBarTextDidBeginEditing:(UISearchBar *)searchBar{
  14. self.soundBtn.hidden = YES;
  15. [self searchBar:searchBar activate:YES];
  16. }
  17. //取消搜索按钮点击时触发
  18. - (void) searchBarCancelButtonClicked:(UISearchBar *)searchBar {
  19. self.searchBar.text = @"";
  20. self.soundBtn.hidden = NO;
  21. [self searchBar:searchBar activate:NO];
  22. }
  23. - (void)searchBar:(UISearchBar *)searchBar activate:(BOOL) active{
  24. if (!active) {
  25. [self.searchBar resignFirstResponder];
  26. }
  27. [self.searchBar setShowsCancelButton:active animated:YES];
  28. //修改UISearchBar取消按钮字体
  29. for (id aa in [searchBar subviews]) {
  30. if ([aa isKindOfClass:[UIButton class]]) {
  31. UIButton *btn = (UIButton *)aa;
  32. [btn setTitle:@"取消" forState:UIControlStateNormal];
  33. }
  34. }
  35. }

UISearchBar相关

时间: 2024-10-13 01:10:14

UISearchBar相关的相关文章

iOS --- 搜索框UISearchController的使用(iOS8.0以后替代UISearchBar + UISearchDisplayController的组合)

在iOS 8.0以上版本中, 我们可以使用UISearchController来非常方便地在UITableView中添加搜索框. 而在之前版本中, 我们还是必须使用UISearchBar + UISearchDisplayController的组合方式. 添加UISearchController属性: @property(strong, nonatomic) UISearchController *searchController; @property(strong, nonatomic) NS

iOS开发——UI进阶篇(十九)UISearchBar控件简介

最近用到搜索功能.总结一下 搜索,无疑可以使用UISearchBar控件! 那就先了解一下UISearchBar控件吧! UISearchBar控件就是要为你完成搜索功能的一个专用控件.它集成了很多你意想不到的功能和特点! 首先,还是来普及一下UISearchBar控件API相关的属性和方法吧! UISearchBar属性相关 _searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];// 初始化,不解释 [self.searchBa

UISearchBar控件

摘自:http://blog.sina.com.cn/s/blog_7b9d64af0101dfg8.html UISearchBar控件就是要为你完成搜索功能的一个专用控件.它集成了很多你意想不到的功能和特点! 首先,还是来普及一下UISearchBar控件API相关的属性和方法吧! UISearchBar属性相关 _searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];// 初始化,不解释 [self.searchBar set

UISearchBar和 UISearchDisplayController的使用

上面是一个navigationController,接下来一个searchBar,下面是tableView searchBar这个控件就用来搜索tableView上的数据 [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]; UISearchDisplayController这个控件很强大,它初始化是基于searchBar的,里面有些效果很不错,apple都封装好了,并且可

自定义UISearchBar

事先声明一下,本篇的实现效果是在今年八月份未发布iOS8.0之前,自己根据项目需求修改的.而后在十月份发布的iOS8之后并没有做相应修改仍然是适配的,所以大致修改是类似的. 通常在使用UISearchBar的时候大多都需要修改系统默认的背景色和自定义风格来与自己的app相适配.由于系统风格实在太丑了,但是UISearchBar的构造随着iOS版本的升级也在不断地改变.所以需要对不用版本的iOS做适配,这里来记录一下相关要点. 首先来看一下效果图:上边为未修改系统默认的,下边则是自定义修改之后的样

UISearchBar的应用

当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing,) 当你希望选中UISearchBar的时候,键盘自动调用加载到界面,你需要将下面函数的返回值设置为YES: - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar { NSLog(@"shouldBeginEditing"

UISearchBar控件UI操作

UISearchBar属性相关 _searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];// 初始化,不解释 [self.searchBar setPlaceholder:@"Search"];// 搜索框的占位符 [self.searchBar setPrompt:@"Prompt"];// 顶部提示文本,相当于控件的Title [self.searchBar setBarStyle:UIBarMet

IOS开发UI基础UITextFidle相关属性

UITextFidle相关属性 •    enablesReturnKeyAutomatically默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle 设置边框样式,只有设置了才会显示边框样式   text.borderStyle = UITextBorderStyleRoundedRect; typedef enum {    UITextBorderStyleNone,     UITextBorderStyleLi

在storyboard中的静态UITableView中拖入 UISearchBar and Search Display Controller出现的奇怪问题

最近学习过程中想模拟一下新浪微博"发现"界面. 我在storyboard中拖入一个UITableViewController,设置这个UITableViewController的TableView为Static Cells,然后添加了两个Section,每个Section两行Cell. 接下来往这个TableView中拖入了一个UISearchBar and Search Display Controller,storyboard中的结构如下图: 然后在UITableViewContr