UISearchBar(搜索框)详解

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

你可能感兴趣的:(UISearchBar(搜索框)详解)