UISearchBar 是苹果自带的原生搜索框,简单好用,如果没有什么特殊的需求,我们完全可以使用这个搜索框
初始化:UISearchBar继承于UIView,我们可以像创建View那样创建searchBar
UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)];
[self.view addSubview:bar];
这个属性可以设置searchBar的搜索框的风格,枚举如下
@property(nonatomic) UIBarStyle barStyle;
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault = 0,//默认风格 白色搜索框,多出的背景为灰色
UIBarStyleBlack = 1,//黑色风格,黑色的搜索框
//下面两个枚举已经被禁用,作用和黑色风格一样
UIBarStyleBlackOpaque = 1, // Deprecated. Use UIBarStyleBlack
UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
};
UISearchBar常用属性
// 自适应大小
[searchBar sizeToFit];
// 1.设置搜索框的样式
[searchBar setBarStyle:UIBarStyleDefault];
// 2.设置背景图片(该方法可以去掉UISearchBar上下的两条线)
searchBar.backgroundImage = [UIImage imageNamed:@"search_bg_icon"];
// 3.设置主题颜色
searchBar.barTintColor = [UIColor redColor];
// 4.设置外边框颜色
searchBar.barTintColor = [UIColor greenColor];
// 5.设置光标颜色
searchBar.tintColor = [UIColor cyanColor];
// 6.设置是否透明
searchBar.translucent = YES;
// 7.设置占位文字
searchBar.placeholder = @"占位文字";
// 8.输入框中间的提示文字
searchBar.prompt = @"提示文字";
// 9.显示搜索框右侧的搜索结果按钮
searchBar.showsSearchResultsButton = YES;
// 10.搜索框右侧的搜索结果按钮是否选中
searchBar.searchResultsButtonSelected = YES;
// 11.设置UISearchBar背景的偏移量
searchBar.searchFieldBackgroundPositionAdjustment = UIOffsetMake(50, 20);
// 12.设置UISearchBar开始编辑时文本的偏移量
searchBar.searchTextPositionAdjustment = UIOffsetMake(50, 20);
// 13.开始编辑时键盘上方出现一个遮盖视图
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 266)];
view.backgroundColor = [UIColor yellowColor];
searchBar.inputAccessoryView = view;
// 14.设置键盘的样式
searchBar.keyboardType = UIKeyboardTypeASCIICapable;
// 15.是否显示搜索框下面的选项条
searchBar.showsScopeBar = YES;
// 16.搜索框下面选项条中选项的名称
searchBar.scopeButtonTitles = @[@"aaaa",@"bbbb",@"cccc"];
// 17.选项条的背景图片
searchBar.scopeBarBackgroundImage = [UIImage imageNamed:@"ios_v4_preview_2"];
// 18.选项条默认选中的按钮下标
searchBar.selectedScopeButtonIndex = 1;
// 19.显示输入框右侧的书形图标
searchBar.showsBookmarkButton = YES;
// 20.显示右侧的取消按钮(无动画)
// searchBar.showsCancelButton = YES;
// 21.显示右侧的取消按钮(有动画)
[searchBar setShowsCancelButton:YES animated:YES];
UISearchBar的代理方法
// 开始编辑时会来到该方法
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
// 结束编辑时会来到该方法
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
// 开始编辑时会来到该方法(可以在该方法判断是否允许用户输入)
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
// 结束编辑时会来到该方法
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
// 点击取消按钮时会来到该方法
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
// 点击键盘的搜索按钮时会来到该方法
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
// 输入框内容发生改变时,会来到该方法
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText