UISearchBar

1、UISearchBar的基本属性

// 初始化
_searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];

    [self.searchBar setPlaceholder:@"Search"];// 搜索框的占位符
    [self.searchBar setPrompt:@"Prompt"];// 顶部提示文本,相当于控件的Title
    [self.searchBar setBarStyle:UIBarMetricsDefault];// 搜索框样式
    [self.searchBar setTintColor:[UIColor blackColor]];// 搜索框的颜色,当设置此属性时,barStyle将失效
    [self.searchBar setTranslucent:YES];// 设置是否透明
    [self.searchBar setBackgroundImage:[UIImage imageNamed:@"image0"]];// 设置背景图片
    [self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"image3"] forState:UIControlStateNormal];// 设置搜索框中文本框的背景
    [self.searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"image0"] forState:UIControlStateHighlighted];
    [self.searchBar setSearchFieldBackgroundPositionAdjustment:UIOffsetMake(30, 30)];// 设置搜索框中文本框的背景的偏移量

    [self.searchBar setSearchResultsButtonSelected:NO];// 设置搜索结果按钮是否选中
    [self.searchBar setShowsSearchResultsButton:YES];// 是否显示搜索结果按钮

    [self.searchBar setSearchTextPositionAdjustment:UIOffsetMake(30, 0)];// 设置搜索框中文本框的文本偏移量

    [self.searchBar setInputAccessoryView:_btnHide];// 提供一个遮盖视图
    [self.searchBar setKeyboardType:UIKeyboardTypeEmailAddress];// 设置键盘样式

    // 设置搜索框下边的分栏条
    [self.searchBar setShowsScopeBar:YES];// 是否显示分栏条
    [self.searchBar setScopeButtonTitles:[NSArray arrayWithObjects:@"Singer",@"Song",@"Album", nil]];// 分栏条,栏目
    [self.searchBar setScopeBarBackgroundImage:[UIImage imageNamed:@"image3"]];// 分栏条的背景颜色
    [self.searchBar setSelectedScopeButtonIndex:1];// 分栏条默认选中的按钮的下标

    [self.searchBar setShowsBookmarkButton:YES];// 是否显示右侧的“书图标”

    [self.searchBar setShowsCancelButton:YES];// 是否显示取消按钮
    [self.searchBar setShowsCancelButton:YES animated:YES];

    // 是否提供自动修正功能(这个方法一般都不用的)
    [self.searchBar setSpellCheckingType:UITextSpellCheckingTypeYes];// 设置自动检查的类型
    [self.searchBar setAutocorrectionType:UITextAutocorrectionTypeDefault];// 是否提供自动修正功能,一般设置为UITextAutocorrectionTypeDefault

    self.searchBar.delegate = self;// 设置代理
    [self.searchBar sizeToFit];
    myTableView.contentInset = UIEdgeInsetsMake(CGRectGetHeight(self.searchBar.bounds), 0, 0, 0);

    [self.view addSubview:myTableView];

    [myTableView addSubview:self.searchBar];

2.代理方法

//搜索框中的内容发生改变时 回调(即要搜索的内容改变)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
    NSLog(@"changed");
    if (_searchBar.text.length == 0) {
        [self setSearchControllerHidden:YES]; //控制下拉列表的隐现
    }else{
        [self setSearchControllerHidden:NO]; 

    }
} 

- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    searchBar.showsCancelButton = YES;
for(id cc in [searchBar subviews])
{
if([cc isKindOfClass:[UIButton class]])
{
UIButton *btn = (UIButton *)cc;
[btn setTitle:@"取消" forState:UIControlStateNormal];
}
}
    NSLog(@"shuould begin");
    return YES;
} 

- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar {
    searchBar.text = @"";
    NSLog(@"did begin");
} 

- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar {
    NSLog(@"did end");
    searchBar.showsCancelButton = NO; 

} 

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    NSLog(@"search clicked");
} 

//点击搜索框上的 取消按钮时 调用
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
    NSLog(@"cancle clicked");
    _searchBar.text = @"";
    [_searchBar resignFirstResponder];
    [self setSearchControllerHidden:YES];
} 
时间: 2024-10-14 01:00:39

UISearchBar的相关文章

iOS中的UISearchBar

在大多数app中都会用到搜索功能,那么搜索功能的实现离不开UISearchBar这个控件. UISearchBar继承自UIView,下面简单的介绍一下它的属性和方法. p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo; color: #3495af } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Menlo } span.s1 { color: #000000 }

新浪微博客户端(5)-自定义UISearchBar

iOS自带的UISearchBar有很多限制,我们可以使用UITextField做出一个类似于SearchBar的效果. //================================================= // 自定义SearchBar //================================================= // 1.创建一个UITextField作为背景 UITextField *searchBar = [[UITextField alloc

修改UISearchBar的背景颜色

当你看到这篇博客你就已经发现了用_searchBar.backgroundColor = [UIColor clearColor];来设置UISearchBar的颜色完全没有效果: 并且,有些方法是想通过遍历出UISearchBarBackground来移除它实现背景透明,也并没有什么卵用. 下面这个方法,你不用纠结它是怎么实现的,直接复制拿去用: _searchBar.backgroundImage = [self imageWithColor:[UIColor clearColor] siz

UISearchBar(搜索框)

初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar     UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)];     [self.view addSubview:bar]; @property(nonatomic)        UIBarStyle              barStyle; 这个属性可以设置searchBar

UISearchBar和UISearchDisplayController

UISearchBar和UISearchDisplayController实例应用 程序介绍:获取系统通讯录,利用 UISearchBar和UISearchDisplayController实现搜索功能 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,UISearchBarDelegate,UISearc

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

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

ios开发入门篇(四):UIWebView结合UISearchBar的简单用法

 UIWebView是ios开发中比较常用的一个控件.我们可以用它来浏览网页.打开文档等,今天笔者在这里简单介绍下UIWebView和UISearchBar结合起来的用法,做一个简单的类浏览器. 一:首先定义这两个控件,并在.h文件中实现UISearchBarDelegate,UIWebViewDelegate两个代理 @interface TestView : UIViewController<UISearchBarDelegate,UIWebViewDelegate> @property(

第四章:IOS Table表视图搜索功能UISearchBar

UISearchBar经常会跟UITable一齐使用,所以在此就介绍一下UISearchBar 先来看看结构 下面再看看它有哪些样式 基本搜索栏.里面????的Search文字用于提示用户??入查询关??字,搜索栏的Placeholder属性可以设置这个提示信息 带有??除按钮的搜索栏.在??入框中??入文字时,会在后面出现??????除按钮,点????除按钮可以??除??入框中的文字 带有查询结果按钮的搜索栏.显示最??搜索结果,显示设定如图4-31所示,选中 Options下的Shows S

iOS开发之UISearchBar初探

iOS开发之UISearchBar初探 UISearchBar也是iOS开发常用控件之一,点进去看看里面的属性barStyle.text.placeholder等等.但是这些属性显然不足矣满足我们的开发需求.比如:修改placeholder的颜色.修改UISearchBar上面的UITextfield的背景颜色.修改UITextfield上面的照片等等. 为了实现上述的需求,最好写一个UISearchBar的子类就叫LSSearchBar吧 LSSearchBar.h如下: #import <U