表視圖 索引和搜索欄 的添加

索引

索引的添加是通過(guò)表視圖的數(shù)據(jù)源協(xié)議方法(UITableViewDatasource)實(shí)現(xiàn)的。

01. // 添加索引
02. - (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
03. {
04.      return 分組標(biāo)題的數(shù)組;
05.      // 返回值是一個(gè)數(shù)組,表示的是索引的標(biāo)題,一般是字母A-Z表示分組標(biāo)題的首字母
06. }
07. ...

搜索欄(UISeachBar)

與索引不同的是,搜索欄是區(qū)別于表視圖的一個(gè)獨(dú)立控件。

搜索欄的特點(diǎn):
  • 無(wú)法更改控件高度,系統(tǒng)默認(rèn)值 44 px
  • 可以在默認(rèn)樣式上添加各種按鈕類(lèi)型豐富搜索欄的風(fēng)格,比如書(shū)簽按鈕等
  • 能夠響應(yīng)編輯輸入事件,按鈕點(diǎn)擊事件和scope(范圍)點(diǎn)擊事件

在表視圖中添加搜索欄的基本步驟

1,添加搜索欄,其實(shí)搜索欄與表視圖是同一級(jí)的

01. ... // 在ViewDidLoad()方法中
02. UISearchBar *searchBar = [[UISearchBar alloc] init];
03. searchBar.frame = CGRectMake(0,0,320,44);  //高度無(wú)法更改,無(wú)論設(shè)置何值,始終默認(rèn)44px
04. // 通過(guò)setShows...屬性,附加多種按鈕
05. [searchBar setShowsCancelButton:YES];
04. // 顯示
05. [self.view addSubView:searchBar]; // 同級(jí)
06. ...

2, 遵守協(xié)議,設(shè)置代理

01. ... // 在之前配置搜索欄信息的位置
02. searchBar.delegate = self;
03. ...

3,實(shí)現(xiàn)需要的協(xié)議方法,要求實(shí)現(xiàn):
搜索欄中文本內(nèi)容發(fā)生更改時(shí)實(shí)時(shí)檢索表視圖的內(nèi)容

01. ...
02. - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
03. {
04.      // 調(diào)用一個(gè)檢索關(guān)鍵字的方法
05. }
06. ...
07. // 這樣搜索欄的部分基本完成,剩下的是表視圖中的響應(yīng)

實(shí)際上,搜索欄的功能只是處理各種事件,檢索功能顯示結(jié)果的實(shí)現(xiàn)都與搜索欄無(wú)關(guān)。

  • 檢索功能:自定義實(shí)現(xiàn),返回值是表視圖需要顯示的數(shù)據(jù)源
  • 顯示結(jié)果:通過(guò)監(jiān)聽(tīng)搜索欄中文本的長(zhǎng)度,來(lái)加載不同的數(shù)據(jù)源
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容