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(@"搜索");
}
网友评论