1. 设置委托
search bar的搜索结果要显示在TableView中,因此还要同时加入TableView的委托
class HistoryController:UIViewController, UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource
2. 实现搜索
下面函数中的arr_filter中存放着用于TableView显示用的数据
@objc func searchBar(searchBar: UISearchBar, textDidChange query: String)
{
print("search somthing")
//if no queries
if query == ""
{
print("search nothing")
}
//search query and refresh display
else {
print("searching:\(query)")
Model.arr_filter = []
for ele in myArr{
if ele.name.lowercaseString.containsString(query) {
Model.arr_filter.append(ele)
}
}
}
tableView!.reloadData()
}
3. Search Bar的设置
sb_search.placeholder = "输入点啥关键字"
<span style="white-space:pre"> </span> sb_search.prompt = "提示文字"
sb_search.text = "input your query"
sb_search.barStyle = UIBarStyle.Default
sb_search.searchBarStyle = UISearchBarStyle.Default
sb_search.barTintColor = ConstantsUI.COLOR_BANNER
sb_search.tintColor = UIColor.redColor()
sb_search.translucent = true
sb_search.showsBookmarkButton = true
sb_search.showsCancelButton = true
sb_search.showsSearchResultsButton = false
sb_search.showsScopeBar = false
sb_search.delegate = self