self.searchBar= [[UISearchBaralloc]initWithFrame:CGRectMake(20,20, kUISCREEN_WIDTH -40,30)];? ? _searchBar.placeholder= @"個(gè)合格";? ? _searchBar.tintColor= [UIColorwhiteColor];? ? _searchBar.translucent=YES;? ? _searchBar.layer.masksToBounds=YES;? ? _searchBar.layer.cornerRadius=5.0;? ? _searchBar.alpha=0.2;//添加背景圖,可以去掉外邊框的灰色部分[_searchBar setBackgroundImage:[UIImagenew]];? ? [_searchBar setTranslucent:YES];//這個(gè)枚舉可以對searchBar進(jìn)行修改_searchBar.searchBarStyle= UISearchBarStyleProminent;//之前的效果,如下面的第一個(gè)效果圖//加上如下命令效果如下searchBar.barTintColor= [UIColorwhiteColor];//給searchBar中的textField添加背景圖[_searchBar setSearchFieldBackgroundImage:[UIImageimageNamed:@"backgroundImage"] forState:UIControlStateNormal];//一下代碼為修改placeholder字體的顏色和大小UITextField * searchField = [_searchBar valueForKey:@"_searchField"];? ? [searchField setValue:[UIColorredColor] forKeyPath:@"_placeholderLabel.textColor"];? ? [searchField setValue:[UIFontboldSystemFontOfSize:16] forKeyPath:@"_placeholderLabel.font"];? ? [topBackImageView addSubview:self.searchBar];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//之前的效果
//之后的效果
其他:
#import"ViewController.h"@interfaceViewController()@property(nonatomic,strong)UISearchBar* searchBar;@end@implementationViewController- (void)viewDidLoad {? ? [superviewDidLoad];self.searchBar= [[UISearchBaralloc]initWithFrame:CGRectMake(20,80,300,50)];//默認(rèn)白色搜索框,多出的背景為灰色;UIBarStyleDefault 默認(rèn) UIBarStyleBlack背景為黑色_searchBar.barStyle= UIBarStyleDefault;//設(shè)置搜索框整體的風(fēng)格為不顯示背景,默認(rèn)為Prominent顯示_searchBar.searchBarStyle= UISearchBarStyleDefault;//設(shè)置搜索框的文字_searchBar.text= @"搜索框";//顯示在searchBar頂部的一行文字//? ? _searchBar.prompt = @"prompt";//占位符_searchBar.placeholder= @"占位符";//設(shè)置搜索框中的光標(biāo)的顏色為黃色_searchBar.tintColor= [UIColoryellowColor];//設(shè)置搜索框的背景顏色_searchBar.barTintColor= [UIColorredColor];//設(shè)置是否透明_searchBar.translucent=YES;? ? _searchBar.showsCancelButton=YES;? ? _searchBar.showsBookmarkButton=YES;//設(shè)置搜索框textField的位置,其他控件位置不改變_searchBar.searchFieldBackgroundPositionAdjustment= UIOffsetMake(50,0);//設(shè)置textField里面文字在field中的位置_searchBar.searchTextPositionAdjustment= UIOffsetMake(50,0);//自定義搜索框放大鏡的圖標(biāo)[_searchBar setImage:[UIImageimageNamed:@"1"] forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];//設(shè)置bookMark圖標(biāo)的設(shè)置[_searchBar setImage:[UIImageimageNamed:@"2"] forSearchBarIcon:UISearchBarIconBookmark state:UIControlStateNormal];? ? _searchBar.delegate=self;? ? [self.viewaddSubview:self.searchBar];}#pragma mark - UISearchBarDelegate/*
調(diào)用BookmarkButton的點(diǎn)擊方法,需要先設(shè)置showsBookmarkButton = YES,并且showsSearchResultsButton 不能同時(shí)設(shè)置為yes,否則不會顯示BookmarkButton,導(dǎo)致無法調(diào)用方法
//是否在搜索框右側(cè)顯示一個(gè)圖書的按鈕,默認(rèn)為NO,
_searchBar.showsBookmarkButton = YES;
調(diào)用ResultsListButton的點(diǎn)擊方法,設(shè)置showsSearchResultsButton = YES;
//當(dāng)搜索框?qū)⒁_始使用時(shí)調(diào)用。yes表示搜索框可以使用,默認(rèn)為yes否則搜索框無法使用
_searchBar.showsSearchResultsButton = YES;
*/- (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar{NSLog(@"ShouldBegin");returnYES;}//當(dāng)搜索框開始編輯時(shí)候調(diào)用- (void)searchBarTextDidBeginEditing:(UISearchBar*)searchBar{NSLog(@"DidBegin");}//當(dāng)搜索框?qū)⒁獙⒁Y(jié)束使用時(shí)調(diào)用。- (BOOL)searchBarShouldEndEditing:(UISearchBar*)searchBar{NSLog(@"ShouldEnd");returnYES;}//當(dāng)搜索框結(jié)束編輯時(shí)候調(diào)用- (void)searchBarTextDidEndEditing:(UISearchBar*)searchBar{NSLog(@"DidEnd");}//當(dāng)field里面內(nèi)容改變時(shí)候就開始掉用。- (void)searchBar:(UISearchBar*)searchBar textDidChange:(NSString*)searchText{NSLog(@"DidChange");if(searchText !=nil&& searchText.length>0){? ? ? ? [self.searchDataAryremoveAllObjects];for(SearchModel * model inself.originAry) {if([model.shop_namerangeOfString:searchText options:NSCaseInsensitiveSearch].length>0) {? ? ? ? ? ? ? ? [self.searchDataAryaddObject:model];? ? ? ? ? ? }? ? ? ? }? ? ? ? [self.tableViewreloadData];? ? }else{self.searchDataAry= [NSMutableArrayarrayWithArray:self.originAry];? ? ? ? [self.tableViewreloadData];? ? }}//在field里面輸入時(shí)掉用,詢問是否允許輸入,yes表示允許,默認(rèn)為yes,否則無法輸入- (BOOL)searchBar:(UISearchBar*)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString*)text {NSLog(@"shouldChange");returnYES;}//點(diǎn)擊SearchButton調(diào)用- (void)searchBarSearchButtonClicked:(UISearchBar*)searchBar{NSLog(@"SearchButtonClicked");}//點(diǎn)擊BookmarkButton調(diào)用- (void)searchBarBookmarkButtonClicked:(UISearchBar*)searchBar {NSLog(@"BookmarkButtonClicked");}//點(diǎn)擊CancelButton調(diào)用- (void)searchBarCancelButtonClicked:(UISearchBar*)searchBar {NSLog(@"CancelButton");}//點(diǎn)擊ResultsListButton調(diào)用- (void)searchBarResultsListButtonClicked:(UISearchBar*)searchBar{NSLog(@"ResultsListButton");}