的iOS,斯威夫特如何使用搜索欄搜索多個視圖? (iOS版雨燕)
的應用程序現在做什麼?:
這個應用程序的主視圖包含類別(排列成表視圖),點擊這些類別時,應用程序將用戶帶到帶有基本文本的滾動視圖和圖像。主視圖還包含一個搜索欄。用戶可以輸入類別名稱並過濾結果。
什麼應用程序需要做的:
我想更好的搜索欄和過濾後的結果。我希望用戶能夠過濾類別名稱,不僅可以輸入類別名稱,還可以輸入包含在特定滾動視圖中的文本。
例如:類別名稱爲:「字母」和「數字」。當用戶點擊「字母」時,它們被帶到一個表示「A B C D ... Z」的視圖,當點擊「Numbers」時,它們被帶到「1 2 3 4 .. 10」的視圖。如果用戶在搜索欄中輸入「A B」,則主視圖將僅顯示「字母」類別。如果用戶在搜索欄中輸入「3」,則主視圖將過濾僅顯示「Numbers」類別。
在結論:
我還是相當新的應用程序開發,這有我難住了。任何幫助將不勝感激,無論是代碼或參考。
謝謝。
TableViewController
變量:
@IBOutlet var searchForTool: UISearchBar!
@IBOutlet var toolTable: UITableView!
var searchActive : Bool = false
var filtered : [String] = []
var data = [" Make", " Model"]
var identities = ["A", "B"]
搜索欄過濾器:
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filtered = data.filter({ (text: String) -> Bool in
return text.range(of: searchText, options: String.CompareOptions.caseInsensitive) != nil
})
if(filtered.count == 0){
searchActive = false
} else {
searchActive = true
}
self.toolTable.reloadData()
}
顯示的單元格:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! CustomCell
if(searchActive){
cell.toolLabel.text = filtered[indexPath.row]
} else {
cell.toolLabel.text = data[indexPath.row]
}
return cell
}
如果需要,將顯示更多代碼。
添加代碼和截圖,將有助於 –
好吧,我會從TableViewController –