UISearchBar
- UISearchBar继承于UIView,可以像创建View那样创建searchBar
初始化
UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(x, y, w, h)];
[self.view addSubview:bar];
显示效果
风格设置
UIBarStyleDefault
UIBarStyleBlack
[_searchBar setBackgroundImage:img];
[_searchBar setSearchFieldBackgroundImage:[UIImage imageNamed:@"图片"] forState:UIControlStateNormal];
[_searchBar setImage:[UIImage resizedImage:@"图片"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
文字设置
_searchBar.placeholder = @"test";
bar.prompt = @"搜索框";
bar.text=@"test"
功能图标
UISearchBarIconSearch
UISearchBarIconClear
UISearchBarIconBookmark
UISearchBarIconResultsList
协议函数
- 需要UISearchBarDelegate以及设置代理
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar;
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar;
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{}
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar;
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar;
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text NS_AVAILABLE_IOS(3_0);
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar;
- (void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar __TVOS_PROHIBITED;
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar __TVOS_PROHIBITED;
- (void)searchBarResultsListButtonClicked:(UISearchBar *)searchBar NS_AVAILABLE_IOS(3_2) __TVOS_PROHIBITED;
- (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope
取消按钮设置
- 注:修改取消按钮文字颜色及背景图片的代码片段,一定要放到取消按钮会显示代理方法中修改,否则遍历找不着呀,那就修改不了了。
#pragma mark 搜索框的代理方法,搜索输入框获得焦点(聚焦)
-(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
{
[searchBar setShowsCancelButton:YES animated:YES];
for (UIView *searchbuttons in [searchBar subviews]){
if ([searchbuttons isKindOfClass:[UIButton class]]) {
UIButton *cancelButton = (UIButton*)searchbuttons;
[cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[cancelButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[cancelButton setBackgroundImage:[UIImage resizedImage:@"login_btn_login.png"] forState:UIControlStateNormal];
[cancelButton setBackgroundImage:nil forState:UIControlStateHighlighted];
}
}
}