我有一个显示一些数据的tableview,我用UISearchbar过滤显示的数据。每个数据结构由不同的值和
组成struct Cake {
var name = String()
var size = String()
var filling = String()
}
当用户开始输入时,我不知道他是否正在过滤名称,大小或填充。我不想使用示波器栏。有没有办法在swift 3中同时过滤各个字段?
这是我用来过滤的代码:
func updateSearchResults(for searchController: UISearchController) {
if searchController.searchBar.text! == "" {
filteredCakes = cakes
} else {
// Filter the results
filteredCakes = cakes.filter { $0.name.lowercased().contains(searchController.searchBar.text!.lowercased()) }
}
self.tableView.reloadData()
}
感谢您的帮助!
答案 0 :(得分:1)
func updateSearchResults(for searchController: UISearchController)
{
guard let searchedText = searchController.searchBar.text?.lowercased() else {return}
filteredCakes = cakes.filter
{
$0.name.lowercased().contains(searchedText) ||
$0.size.lowercased().contains(searchedText) ||
$0.filling.lowercased().contains(searchedText)
}
self.tableView.reloadData()
}