使用UISearchBar筛选器阵列

问题描述:

我目前使用以下代码来筛选数组并在我的tableView中显示结果。问题是这只会返回结果,如果搜索匹配确切的单词。我如何更改我的数组筛选器以在输入时搜索每个字符?使用UISearchBar筛选器阵列

let data = ["Mango", "Grape", "Berry", "Orange", "Apple"] 

var filteredData: [String] = [] 

filteredData = data.filter({$0 == searchBar.text}) 

只有这样,才能获得“芒果”在我的tableView展现出来,我在搜索栏中键入芒果,键入“人”不显示任何结果。

+0

使用含有代替== HTTPS:/ /developer.apple.com/documentation/swift/string/1643241-contains – koropok

试试这个:

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} 
}