SearchController.searchBar的三種UI布局應(yīng)用案例:
應(yīng)用在導(dǎo)航欄2級(jí)以上層級(jí)位置(非首頁(yè))
UI-1: 放置在UITableView的tableHeaderView視圖的位置
優(yōu)點(diǎn): 搜索框可以跟隨tableView視圖一起進(jìn)行垂直方向滑動(dòng)送巡;
代碼:
tableView.tableHeaderView = _searchController.searchBar;
如圖:
- 與列表中間有一條分隔線;
- 在列表視圖置頂時(shí)盒卸,搜索框會(huì)暫時(shí)隱藏骗爆;
UI-2:放置在導(dǎo)航欄,且在返回按鈕下方
優(yōu)點(diǎn):無(wú)分隔線(UI-1升級(jí)版世落,可設(shè)置搜索框滾動(dòng)時(shí)不隱藏)淮腾;
缺點(diǎn):需要iOS11以上版本才支持;
代碼:
if (@available(iOS 11.0, *)) {
self.navigationItem.searchController = _searchController;
// 如下設(shè)置屉佳,可一直顯示搜索框
self.navigationItem.hidesSearchBarWhenScrolling = false;
}
如圖:
何必曰(筆者):第一種方案兼容更多版本谷朝,但第二種方案擁有很多可設(shè)置的屬性,用法上設(shè)置自定義時(shí)更靈活些
UI-3:放置在導(dǎo)航欄的標(biāo)題位置
優(yōu)點(diǎn):位置居中 武花;
代碼:
self.navigationItem.titleView = _searchController.searchBar;
如圖:
其實(shí)UI布局以上說(shuō)的圆凰,僅僅是簡(jiǎn)單應(yīng)用,更多的還是需要去因需而創(chuàng):
直接自定義導(dǎo)航欄(更靈活);
使用系統(tǒng)原生的控件体箕,可以使用每次WWDC帶來(lái)的一點(diǎn)??新意(雖然不多)专钉。這“不夠新意”或許會(huì)讓我們?nèi)涯?/code>喬歩斯-以及OneMoreThing的特場(chǎng)秀~