Swift - UISearchController的简单使用
记录下UISearchController的简单使用,方便后期查找。此次是将UISearchController添加到导航栏上使用的
Demo效果如下
UISearchController的初始化
- 代码如下
/// 初始化搜索控制器
func initSearchController() {
searchC = UISearchController.init(searchResultsController: nil)
searchC.searchResultsUpdater = self
//设置placeholder
searchC.searchBar.placeholder = "搜索内容"
//设置为false,则搜索出来的内容可点击等操作
searchC.obscuresBackgroundDuringPresentation = false
//总是显示搜索框,如果不设置,会随着滚动而消失
navigationItem.hidesSearchBarWhenScrolling = false
//将搜索控制器加到导航栏上
navigationItem.searchController = searchC
}
注:以下两个属性需要注意下
//设置为false,则搜索出来的内容可点击等操作
searchC.obscuresBackgroundDuringPresentation = false
//总是显示搜索框,如果不设置,会随着滚动而消失
navigationItem.hidesSearchBarWhenScrolling = false
- 实现代理,进行实时搜索
/// UISearchController代理,实时进行搜索
func updateSearchResults(for searchController: UISearchController) {
searchArr = dataList.filter({ (str) -> Bool in
//localizedCaseInsensitiveContains 返回不区分大小写,包含的数据
return str.localizedCaseInsensitiveContains(searchC.searchBar.text!)
})
}
这里使用了Swift数组自带filter方法,返回一个符合条件的新数组
以上就是的UISearchController简单使用,不涉及.searchBar.scopeButtonTitles