UISearchController iOS搜索控制器
导航栏里的搜索体验,用UISearchController搞定真的挺方便的。iOS 8 之后,Apple 就推荐用它来统一搜索功能,集成起来也不麻烦,几行代码搞定初始化,响应也快,界面还挺整洁。
UISearchController自带UISearchBar,还能配合你的table view或collection view用,用户输入啥你就能实时过滤显示啥。想加点花样?样式自定义、搜索结果模糊背景、响应状态变化这些它都支持。
配置过程也简单,像这样:
let searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "输入关键词"
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
再配合实现UISearchResultsUpdating
协议:
extension YourViewController: UISearchResultsUpdating {
func updateSearchResults(for searchController: UISearchController) {
guard let searchText = searchController.searchBar.text else { return }
// 过滤数据逻辑
tableView.reloadData()
}
}
哦对了,如果你的项目用CoreData,可以直接上NSPredicate
搞定搜索逻辑。想搜索用户、文章、商品?都能用。
用的时候注意几点:搜索状态的切换记得监听一下,像willPresentSearchController(_:)
、didDismissSearchController(_:)
这种,方便你做资源释放或者界面还原。
,UISearchController算是个挺成熟的搜索方案。如果你现在还在单独用UISearchBar
配合别的东西拼功能,不如试试它,一整套逻辑全给你包好了,省心不少。
搜索框的使用.zip
预估大小:17个文件
搜索框的使用
文件夹
.DS_Store
6KB
搜索框的使用
文件夹
ViewController.m
3KB
Info.plist
1KB
main.m
342B
Base.lproj
文件夹
Main.storyboard
2KB
LaunchScreen.xib
4KB
Images.xcassets
文件夹
30.01KB
文件大小:
评论区