我目前正在使用以下代码来过滤数组并将结果显示在我的 tableView 中。问题是,只有当搜索与确切的单词匹配时,才会返回结果。如何更改数组过滤器以在输入时搜索每个字符?
let data = ["Mango", "Grape", "Berry", "Orange", "Apple"]
var filteredData: [String] = []
filteredData = data.filter({$0 == searchBar.text})
让“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()
}
这确保了当 searchBar 为空时,它会返回显示所有数组的数据,同时在每次更改文本时重新加载 tableView。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)