iOS, SwiftWie verwende ich die Suchleiste, um mehrere Ansichten zu durchsuchen? (IOS Swift)
Was die App jetzt ist:
Die Hauptansicht dieser App enthält Kategorien (in einer Tabellenansicht angeordnet), wenn die Kategorien klicken, bringt die App den Benutzer eine Scroll-Ansicht mit Grundtext und Bildern. Die Hauptansicht enthält auch eine Suchleiste. Der Benutzer kann einen Kategorienamen eingeben und die Ergebnisse filtern.
Was die App tun muss:
ich die Suchleiste verbessern möchten, und gefilterten Ergebnisse. Ich möchte, dass der Benutzer die Möglichkeit hat, Kategorienamen nicht nur durch Eingabe des Namens der Kategorie zu filtern, sondern auch durch Eingabe von Text, der in einer bestimmten Scroll-Ansicht enthalten ist.
Beispiel: Die Kategorienamen sind: "Buchstaben" und "Zahlen". Wenn der Benutzer auf "Briefe" klickt, werden sie in eine Ansicht mit der Bezeichnung "A B C D .. Z" gebracht, wenn "Numbers" angeklickt wird, werden sie zu der Ansicht "1 2 3 4 .. 10" gebracht. Wenn der Benutzer "A B" in die Suchleiste eingibt, wird in der Hauptansicht nur die Kategorie "Briefe" angezeigt. Wenn der Benutzer "3" in die Suchleiste eingibt, wird in der Hauptansicht nur die Kategorie "Zahlen" angezeigt.
Im Fazit:
Ich bin immer noch ziemlich neu in App-Entwicklung, und das hat mich ratlos. Jede Hilfe würde sehr geschätzt werden, ob Code oder eine Referenz.
Vielen Dank.
Tableviewcontroller
Variablen:
@IBOutlet var searchForTool: UISearchBar!
@IBOutlet var toolTable: UITableView!
var searchActive : Bool = false
var filtered : [String] = []
var data = [" Make", " Model"]
var identities = ["A", "B"]
Search Bar Filter:
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()
}
Angezeigte Zellen:
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
}
Zeigt bei Bedarf mehr Code an.
Code und Screenshots für nicht bereitstellt meine Codestruktur früher –
Ordnung würde helfen Hinzufügen Ich werde einige Codes aus dem Tableviewcontroller –