1.初始化
UISearchBar *search = [[UISearchBar alloc] initWithFrame:CGRectMake( 0, 0, 100, 30)];
[self.view addSubview:search];
[search release];
2.搜索框的占位符
[search setPlaceholder:@"搜索文本"];
3.顶部的提示文本,相当于空间的title(标题)
[search setPrompt:@"title"];
4.搜索框样式
[search setBarStyle:UIBarMetricsDefault];
5.搜索框的颜色(当设置此属性是,barStyle将失效)
[search setTintColor:[UIColor blackColor]];
6.设置是否透明
[search setTranslucent:YES];
7.设置背景图片
[search setBackgroundImage:[UIImage imageNamed:@"1"]];
8.设置搜索框中文本框的背景图片
[search setSearchFieldBackgroundImage:[UIImage imageNamed:@"3"] forState:UIControlStateNormal];
对于forState:还有UIControlStateHighlighted,可以点击进入看看
9.设置搜索框中文本框背景的偏移量
[search setSearchFieldBackgroundPositionAdjustment:UIOffsetMake(40, 50)];
10.设置搜索结果是否被选中
[search setSearchResultButtonSelected:NO];
11.是否显示搜索结果
[search setShowSearchResultButton:YES];
12.设置搜索框中文本框的偏移量
[search setSearchTextPositionAdjustment:UIOffsetMake(40, 0)];
13.UISearchBar提供的遮盖视图
[search setInputAccessoryView:hideView];
hideView自己定义的视图
在苹果的电话本的搜索功能,当UISearchBar焦点状态下,出现半透明遮盖层 那个半透明的黑色View就是遮盖视图
遮盖层
14.设置键盘样式
[search setKeyboardType:UIKeyboardTypeEmailAddress];
15.下面是关于搜索框下边的分栏条
(1)是否显示分栏条
[search setShowScopeBar:YES];
(2)分栏条 栏目
[search setScopeButtonTitle:[NSArray arrayWithObjects:@"one",@"two",@"three",nil]];
(3)分栏条的背景图片
[search setScopeBarBackgroundImage:[UIImage imageNamed:@""]];
(4)分栏条默认选中的按钮的下标
[search setSelectedScopeButtonIndex:1];
16.是否显示右侧的书图标
[search setShowBookmarkButton:YES];
17.是否显示取消按钮
[search setShowCancelButton:YES];
带动画效果
[search setShowCancelButton:YES animated:YES];
18.是否提供自动修正功能(一般都不用)
[search setSpellCheckingType:UITextSpellCheckingTypeYES];
19.设置自动检查的类型
[search setAutocorrectionType:UITextAutocorrectionTypeDefault];
是否提供自动修正功能,一般设置为UITextAutocorrectionTypeDefault
20.设置代理
search.delegate = self;
21.尺寸适应
[search sizeToFit];
方法(delegate的协议方法等等 可以点击进入UISearchBar控件的类里看看)
1.控制遮罩层的透明度
- (void)controlAccessoryView:(float)alphaValue{
[UIView animateWithDuration:0.2 animations:^{
[hideView setAlpha:alphaValue];
}completion:^(BOOL finashed){
if (alphaValue <= 0){
[search resignFirstResponder];
[search setShowCancelButton:NO animated:YES];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
}];
}
2.UISearchBar得到焦点并开始编辑时,执行该方法
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{
[search setShowsCancelButton:YES animated:YES];
[self.navigationController setNavigationBarHidden:NO animated:YES];
//显示遮盖层
[self controlAccessoryView:0.55];
rerutn YES;
}
3.取消按钮被按下时执行的方法
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{
[search resignFirstResponder];
[search setShowCancelButton:NO animated:YES];
搜索相关数据
[collectionView searchDataBySearchString:search.text];
[self.navigationController setNavigationBarHidden:NO animated:YES];
//隐藏遮盖层
[self controlAccessoryView:0];
}
4.当搜索内容变化时,执行此方法(实现时时搜索)
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
搜索相关数据
[collectionView searchDataBySearchString:search.text];
[self.navigationController setNavigationBarHidden:NO animated:YES];
//隐藏遮盖层
[self controlAccessoryView:0];
}
5.键盘中,搜索按钮被按下执行的方法
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[search resignFirstResponder];
[search setShowCancelButton:NO animated:YES];
搜索相关数据
[collectionView searchDataBySearchString:search.text];
[self.navigationController setNavigationBarHidden:NO animated:YES];
//隐藏遮盖层
[self controlAccessoryView:0];
}