UISearchBar设置

作者: lym不解释 | 来源:发表于2017-01-10 14:03 被阅读41次

1.UI设置

- (void) setupSearchBar {
    //1. 设置背景图是为了去掉上下黑线
    self.searchBar.backgroundImage = [[UIImage alloc] init];
    
    //2. 设置圆角和边框颜色
    //获取searchBar里面的TextField
    UITextField *searchField = [self.searchBar valueForKey:@"searchField"];
    
    if (searchField) {
        [searchField setBackgroundColor:[UIColor whiteColor]];
        searchField.layer.cornerRadius = 0.0f;
        searchField.layer.borderColor = [UIColor colorWithWhite:0.961 alpha:1.000].CGColor;
        searchField.layer.borderWidth = 1;
        searchField.layer.masksToBounds = YES;
        
        //更改searchBar 中PlaceHolder 字体颜色
        [searchField setValue:[UIColor colorWithRed:0.129 green:0.667 blue:0.702 alpha:1.000] forKeyPath:@"_placeholderLabel.textColor"];
    }
    
    //4. 设置输入框文字颜色和字体
    [UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]].textColor = [UIColor colorWithRed:0.129 green:0.667 blue:0.702 alpha:1.000];
    
    //5. 设置搜索Icon
    [self.searchBar setImage:[UIImage imageNamed:@"ic_search"]
            forSearchBarIcon:UISearchBarIconSearch
                       state:UIControlStateNormal];
}

2.UISearchBarDelegate

// 搜索文字改变
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
    
}
// 搜索开始编辑
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
    //设置取消按钮样式
    //首先取出cancelBtn
    UIButton *cancelBtn = [searchBar valueForKey:@"cancelButton"];
    //取消按钮文字
    [cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
    //取消按钮文字颜色
    [cancelBtn setTitleColor:[UIColor colorWithRed:0.129 green:0.667 blue:0.702 alpha:1.000] forState:UIControlStateNormal];
    
}

// 编辑
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar {
    //展示取消按钮
    searchBar.showsCancelButton = YES;
    return YES;
}
// 编辑
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar {
    return YES;
}
// 取消按钮点击
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
    searchBar.text = @"";
    //收起键盘
    [searchBar resignFirstResponder];
    //隐藏取消按钮
    [searchBar setShowsCancelButton:NO animated:YES];
    
}
// 键盘return按钮
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    NSLog(@"搜索");
    
}

相关文章

网友评论

    本文标题:UISearchBar设置

    本文链接:https://www.haomeiwen.com/subject/uwvkbttx.html