如何在iOS开发中通过UISearchBar搜索框实现数据筛选与获取
搜索栏实现数据检索的实现方法
实现思路
- 提前准备两个数组:一个是存储全量待检索数据的原始数组,另一个是存储匹配结果的过滤数组,列表/表格最终展示的是过滤数组的内容
- 给搜索栏设置代理,监听搜索栏的文本变化事件,每次用户输入内容时触发检索逻辑
- 检索逻辑处理规则:
- 若搜索栏输入为空,直接把全量原始数据赋值给过滤数组,展示全部内容
- 若搜索栏有输入内容,遍历原始数组,将内容和搜索关键词都转为小写后做模糊匹配,所有匹配到的内容存入过滤数组
- 检索完成后刷新列表视图,渲染最新的检索结果
参考实现代码(Swift)
@IBOutlet weak var searhBar: UISearchBar! // 原始全量数据源数组 var arr = NSMutableArray() // 过滤后的结果数组,表格实际渲染该数组内容 var filterdata = NSMutableArray() // UISearchBar文本变化代理方法 func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) { // 清空上一次的过滤结果 filterdata = [] if searchText == "" { // 搜索框为空时展示全部数据 filterdata = arr } else { // 遍历原始数组做模糊匹配 for items in arr { if let txt = items as? String { // 不区分大小写匹配 if txt.lowercased().contains(searchText.lowercased()) { filterdata.add(txt) } } } } // 刷新表格渲染最新结果 self.tblView.reloadData() }
内容的提问来源于stack exchange,提问作者deepak bawa
相关产品推荐
相关产品推荐

