iOS App開發(fā)中UISearchBar搜索欄組件的基本用法整理
基本屬性
@UISearchBar search = [[UISearchBar alloc]initWithFrame:CGRectMake(0,44,320,120)];
pragma mark -基本設(shè)置
//控件的樣式 默認(rèn)--0白色,1是黑色風(fēng)格
/*
UIBarStyleDefault = 0,
UIBarStyleBlack = 1,
search.barStyle =UIBarStyleDefault;
/*
UISearchBarStyleDefault,
// currently UISearchBarStyleProminent
UISearchBarStyleProminent, // used my Mail, Messages and Contacts(provides no default background color or image but will display one if customized as such系統(tǒng)提供的顏色和圖片無(wú)效,自定制有效)
UISearchBarStyleMinimal // used by Calendar, Notes and Music
*/
search.searchBarStyle =UISearchBarStyleDefault;
// 控件上面的顯示的文字
search.text =@"HMT";
// 顯示在頂部的單行文字,通常作為一個(gè)提示行
search.prompt =@"DOTA";
// 半透明的提示文字,輸入搜索內(nèi)容消失
search.placeholder =@"請(qǐng)輸入要搜索的詞語(yǔ)";
// bar的顏色(具有漸變效果)搜索欄閃動(dòng)條和選擇欄邊框,取消按鈕和選擇欄被選中時(shí)候都會(huì)變成設(shè)置的顏色
search.tintColor = [UIColor redColor];
// 除搜索欄框框,就像貼了一張鏤空了搜索欄的顏色貼圖,不影響其他任何設(shè)置的顏色
search.barTintColor = [UIColor whiteColor];
// 指定控件是否會(huì)有透視效果
search.translucent =YES;
// 設(shè)置在什么的情況下自動(dòng)大寫
/*
UITextAutocapitalizationTypeNone, //除非自己點(diǎn)擊大寫,否則永不大寫
UITextAutocapitalizationTypeWords, //以單詞來(lái)區(qū)分,每個(gè)單詞首字母大寫
UITextAutocapitalizationTypeSentences, //以句子來(lái)區(qū)分
UITextAutocapitalizationTypeAllCharacters, //所有字母全部大寫
*/
search.autocapitalizationType =UITextAutocapitalizationTypeNone;
// 對(duì)于文本對(duì)象自動(dòng)校正風(fēng)格(額,我也不知道有什么用)
/*
UITextAutocorrectionTypeDefault,
UITextAutocorrectionTypeNo,
UITextAutocorrectionTypeYes,
*/
search.autocorrectionType =UITextAutocorrectionTypeNo;
// 鍵盤的樣式(具體可參考文章UITableView詳解(一))
search.keyboardType =UIKeyboardTypeNumberPad;
pragma mark - 設(shè)置搜索欄右邊按鈕圖標(biāo)(UISearchBarIcon)
// 是否在控件的右端顯示一個(gè)書的按鈕
search.showsBookmarkButton =YES;
// 是否顯示cancel按鈕(靜態(tài))
//search.showsCancelButton = YES;
// 是否顯示cancel按鈕(帶有動(dòng)畫效果)
[search setShowsCancelButton:YES animated:YES];
// 是否在控件的右端顯示搜索結(jié)果按鈕(圖形是一個(gè)圓里面放著一個(gè)向下的箭頭)
search.showsSearchResultsButton =YES;
// 搜索結(jié)果按鈕是否被選中
search.showsSearchResultsButton =YES;
// 設(shè)置控件的右端顯示搜索結(jié)果按鈕處 --- 可用圖片替換掉
[search setImage:[UIImage imageNamed:@"qiyi.png"]forSearchBarIcon:UISearchBarIconResultsList state:UIControlStateNormal];
pragma mark - 搜索欄下部選擇欄
// 搜索欄下部的選擇欄,數(shù)組里面的內(nèi)容是按鈕的標(biāo)題
search.scopeButtonTitles = [NSArray arrayWithObjects:@"iOS",@"Android",@"iPhone",nil];
// 進(jìn)入界面,搜索欄下部的默認(rèn)選擇欄按鈕的索引(也就是第一出現(xiàn)在哪個(gè)選擇欄)
search.selectedScopeButtonIndex =2;
// 控制搜索欄下部的選擇欄是否顯示出來(lái)(顯示的話,就要修改search的frame,不顯示的話80就夠了)
search.showsScopeBar =YES;
pragma mark - 設(shè)置控件圖片
// 設(shè)置控件背景圖片
search.backgroundImage = [UIImage imageNamed:@"qiyi.png"];
// 設(shè)置搜索欄下部背景圖片
search.scopeBarBackgroundImage = [UIImage imageNamed:@"qiyi.png"];
pragma mark - 協(xié)議UISearchBarDelegate
(不解釋了,看名字,已經(jīng)很明顯了)
@編輯文本
// UISearchBar得到焦點(diǎn)并開始編輯時(shí),執(zhí)行該方法
(BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar; // return NO to not become first responder
(void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar{ // called when text starts editing
[searchBar setShowsCancelButton:YES animated:YES]; // 動(dòng)畫顯示取消按鈕
}
(BOOL)searchBarShouldEndEditing:(UISearchBar *)searchBar; // return NO to not resign first responder
(void)searchBarTextDidEndEditing:(UISearchBar *)searchBar; // called when text ends editing
(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{ // called when text changes (including clear)
@ 當(dāng)搜索內(nèi)容變化時(shí),執(zhí)行該方法。很有用,可以實(shí)現(xiàn)時(shí)實(shí)搜索
}
(BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)textNS_AVAILABLE_IOS(3_0); // called before text changes
@按鈕點(diǎn)擊
(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar; // called when keyboard search button pressed
(void)searchBarBookmarkButtonClicked:(UISearchBar *)searchBar; // called when bookmark button pressed
(void)searchBarCancelButtonClicked:(UISearchBar *) searchBar{ // called when cancel button pressed
[searchBar setShowsCancelButton:NO animated:NO]; // 取消按鈕回收
[searchBar resignFirstResponder]; // 取消第一響應(yīng)值,鍵盤回收,搜索結(jié)束
}
(void)searchBarResultsListButtonClicked:(UISearchBar *)searchBarNS_AVAILABLE_IOS(3_2);// called when search results button pressed
(void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScopeNS_AVAILABLE_IOS(3_0);
數(shù)據(jù)刷選類:NSPredicate
@假設(shè): NSArray array = [[NSArray alloc]initWithObjects:@"luna",@"moon",@"",@"lion",@"coco", nil];
// 數(shù)據(jù)的處理主要發(fā)生在這個(gè)方法中
(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
// 方法一:([c]不區(qū)分大小寫[d]不區(qū)分發(fā)音符號(hào)即沒有重音符號(hào)[cd]既不區(qū)分大小寫,也不區(qū)分發(fā)音符號(hào)。)
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS [cd] %@",searchText];
// 數(shù)組提供的快速遍歷,返回的類型是NSArray
NSLog(@"%@",[ _array filteredArrayUsingPredicate:predicate]);
// 方法二:
for (int i = 0; i count]; i++) {
if ([predicate evaluateWithObject:[ _array objectAtIndex:i]]) {
NSLog(@"%@",[arrayobjectAtIndex:i]);
}
}
}
相關(guān)文章
IOS 創(chuàng)建并發(fā)線程的實(shí)例詳解
這篇文章主要介紹了IOS 創(chuàng)建并發(fā)線程的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07iOS開發(fā)生成二維碼圖片(附中間帶有小圖標(biāo)二維碼)
這篇文章主要介紹了iOS開發(fā)生成二維碼圖片(附中間帶有小圖標(biāo)二維碼)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-10-10ios實(shí)現(xiàn)tableView頂部彈簧圖片效果
這篇文章主要為大家詳細(xì)介紹了ios實(shí)現(xiàn)tableView頂部彈簧圖片效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08開發(fā)繪圖、手勢(shì)綜合App注意點(diǎn)
本篇文章主要給大家詳細(xì)講述了在IOS開發(fā)繪圖、手勢(shì)綜合App容易遇到的坑以及注意事項(xiàng)等內(nèi)容,有興趣的朋友參考下吧。2018-02-02IOS 調(diào)整內(nèi)存中的圖片大小實(shí)例詳解
這篇文章主要介紹了IOS 調(diào)整內(nèi)存中的圖片大小實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04iOS AVPlayer切換播放源實(shí)現(xiàn)連續(xù)播放和全屏切換的方法
這篇文章主要給大家介紹了關(guān)于iOS中AVPlayer切換播放源實(shí)現(xiàn)連續(xù)播放和全屏切換的方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05