UISearchBar 是蘋果自帶的原生搜索框碱妆,簡單好用懈息,如果沒有什么特殊的需求罕扎,我們完全可以使用這個(gè)搜索框
初始化:UISearchBar繼承于UIView抵屿,我們可以像創(chuàng)建View那樣創(chuàng)建searchBar
UISearchBar * bar = [[UISearchBar alloc]initWithFrame:CGRectMake(20, 100, 250, 40)];
[self.view addSubview:bar];
這個(gè)屬性可以設(shè)置searchBar的搜索框的風(fēng)格庆锦,枚舉如下
@property(nonatomic) UIBarStyle barStyle;
typedef NS_ENUM(NSInteger, UIBarStyle) {
UIBarStyleDefault = 0,//默認(rèn)風(fēng)格 白色搜索框,多出的背景為灰色
UIBarStyleBlack = 1,//黑色風(fēng)格轧葛,黑色的搜索框
//下面兩個(gè)枚舉已經(jīng)被禁用搂抒,作用和黑色風(fēng)格一樣
UIBarStyleBlackOpaque = 1, // Deprecated. Use UIBarStyleBlack
UIBarStyleBlackTranslucent = 2, // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
};
UISearchBar常用屬性
// 自適應(yīng)大小
[searchBar sizeToFit];
// 1.設(shè)置搜索框的樣式
[searchBar setBarStyle:UIBarStyleDefault];
// 2.設(shè)置背景圖片(該方法可以去掉UISearchBar上下的兩條線)
searchBar.backgroundImage = [UIImage imageNamed:@"search_bg_icon"];
// 3.設(shè)置主題顏色
searchBar.barTintColor = [UIColor redColor];
// 4.設(shè)置外邊框顏色
searchBar.barTintColor = [UIColor greenColor];
// 5.設(shè)置光標(biāo)顏色
searchBar.tintColor = [UIColor cyanColor];
// 6.設(shè)置是否透明
searchBar.translucent = YES;
// 7.設(shè)置占位文字
searchBar.placeholder = @"占位文字";
// 8.輸入框中間的提示文字
searchBar.prompt = @"提示文字";
// 9.顯示搜索框右側(cè)的搜索結(jié)果按鈕
searchBar.showsSearchResultsButton = YES;
// 10.搜索框右側(cè)的搜索結(jié)果按鈕是否選中
searchBar.searchResultsButtonSelected = YES;
// 11.設(shè)置UISearchBar背景的偏移量
searchBar.searchFieldBackgroundPositionAdjustment = UIOffsetMake(50, 20);
// 12.設(shè)置UISearchBar開始編輯時(shí)文本的偏移量
searchBar.searchTextPositionAdjustment = UIOffsetMake(50, 20);
// 13.開始編輯時(shí)鍵盤上方出現(xiàn)一個(gè)遮蓋視圖
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 266)];
view.backgroundColor = [UIColor yellowColor];
searchBar.inputAccessoryView = view;
// 14.設(shè)置鍵盤的樣式
searchBar.keyboardType = UIKeyboardTypeASCIICapable;
// 15.是否顯示搜索框下面的選項(xiàng)條
searchBar.showsScopeBar = YES;
// 16.搜索框下面選項(xiàng)條中選項(xiàng)的名稱
searchBar.scopeButtonTitles = @[@"aaaa",@"bbbb",@"cccc"];
// 17.選項(xiàng)條的背景圖片
searchBar.scopeBarBackgroundImage = [UIImage imageNamed:@"ios_v4_preview_2"];
// 18.選項(xiàng)條默認(rèn)選中的按鈕下標(biāo)
searchBar.selectedScopeButtonIndex = 1;
// 19.顯示輸入框右側(cè)的書形圖標(biāo)
searchBar.showsBookmarkButton = YES;
// 20.顯示右側(cè)的取消按鈕(無動畫)
// searchBar.showsCancelButton = YES;
// 21.顯示右側(cè)的取消按鈕(有動畫)
[searchBar setShowsCancelButton:YES animated:YES];
UISearchBar的代理方法
// 開始編輯時(shí)會來到該方法
- (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar
// 結(jié)束編輯時(shí)會來到該方法
- (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar
// 開始編輯時(shí)會來到該方法(可以在該方法判斷是否允許用戶輸入)
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
// 結(jié)束編輯時(shí)會來到該方法
- (BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar
// 點(diǎn)擊取消按鈕時(shí)會來到該方法
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
// 點(diǎn)擊鍵盤的搜索按鈕時(shí)會來到該方法
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
// 輸入框內(nèi)容發(fā)生改變時(shí),會來到該方法
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText