簡體   English   中英

搜索字符而不是單詞SWIFT

[英]Searching for characters instead of words SWIFT

您好,我正在構建代碼,並且正在使用結構。 我想在視圖上設置搜索。 這是我到目前為止所要做的事情

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

使用'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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM