使用UISearchBar筛选器阵列
问题描述:
我目前使用以下代码来筛选数组并在我的tableView中显示结果。问题是这只会返回结果,如果搜索匹配确切的单词。我如何更改我的数组筛选器以在输入时搜索每个字符?使用UISearchBar筛选器阵列
let data = ["Mango", "Grape", "Berry", "Orange", "Apple"]
var filteredData: [String] = []
filteredData = data.filter({$0 == searchBar.text})
只有这样,才能获得“芒果”在我的tableView展现出来,我在搜索栏中键入芒果,键入“人”不显示任何结果。
答
试试这个:
filteredData = data.filter { $0.contains(_ other: searchBar.text) }
答
这必将帮助你:
VAR filteredData:[字符串] = []
func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String){
filterContentForSearchText(searchText: searchText)
}
func filterContentForSearchText(searchText: String, scope: String = "All") {
if searchText != "" {
filterData = data.filter {name in
return name.lowercased().contains(searchText.lowercased())
}
}else { self.filterData = self.data}
}
使用含有代替== HTTPS:/ /developer.apple.com/documentation/swift/string/1643241-contains – koropok