您好我正在构建代码,我正在使用结构。我想在视图上设置搜索。这是我到目前为止所做的以及我正在做的事情
struct subCategory {
var subCategoryName = String()
var subCategoryDesc = String()
var subImageId = String()
var subType = String()
var subLinkType = String()
var subCatImageUrl = String()
var subCatId = String()
}
var subCatContent = subCategory()
var subCatArray = [subCategory]()
var filteredsub = [subCategory]()
这是我的视图控制器
self.resultSearchController = UISearchController(searchResultsController: nil)
self.resultSearchController.searchResultsUpdater = self
self.resultSearchController.dimsBackgroundDuringPresentation = false
self.resultSearchController.searchBar.sizeToFit()
self.tableView.tableHeaderView = self.resultSearchController.searchBar
self.tableView.reloadData()
我明白了。我需要的是搜索字符而不是整个工作。因此,如果我在输入T或TO时搜索TOUR,我希望它能显示我将如何做到这一点?
func updateSearchResultsForSearchController(searchController: UISearchController)
{
self.filteredsub.removeAll(keepCapacity: false)
filteredsub = subCatArray.filter{
$0.subCategoryName == searchController.searchBar.text!
}
self.tableView.reloadData()
}
不,我想搜索一下这些东西。我有它的工作,所以如果TOUR在列表中它找到了,但我希望它也给我一个结果,如果我输入TO它仍然会告诉我TOUR甚至我没有完成拼写
答案 0 :(得分:2)
使用'rangeOfString()'方法。
func updateSearchResultsForSearchController(searchController: UISearchController)
{
self.filteredsub.removeAll(keepCapacity: false)
filteredsub = subCatArray.filter{
$0.subCategoryName.rangeOfString(searchController.searchBar.text!) != nil
}
self.tableView.reloadData()
}
您还可以将字符串转换为小写,以使搜索“不区分大小写”。
$0.subCategoryName.lowercaseString.rangeOfString(searchController.searchBar.text!.lowercaseString) != nil