Mar*_*eli 3 arrays uisearchbar swift
我目前正在使用以下代码来过滤数组并将结果显示在我的 tableView 中。问题是,只有当搜索与确切的单词匹配时,才会返回结果。如何更改数组过滤器以在输入时搜索每个字符?
let data = ["Mango", "Grape", "Berry", "Orange", "Apple"]
var filteredData: [String] = []
filteredData = data.filter({$0 == searchBar.text})
Run Code Online (Sandbox Code Playgroud)
让“Mango”显示在我的 tableView 中的唯一方法是,我必须在搜索栏中输入 Mango,输入“Man”不会显示任何结果。
斯威夫特 5 解决方案:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredData = data
if searchText.isEmpty == false {
filteredData = data.filter({ $0.contains(searchText) })
}
tableView.reloadData()
}
Run Code Online (Sandbox Code Playgroud)
这确保了当 searchBar 为空时,它会返回显示所有数组的数据,同时在每次更改文本时重新加载 tableView。
| 归档时间: |
|
| 查看次数: |
13945 次 |
| 最近记录: |