Ich möchte Benutzern meiner App erlauben, Bilder mit einem UISearchBar
über einem UICollectionView
zu suchen. Nach meinem Verständnis muss ein UICollectionView
in einem UICollectionViewController
ordnungsgemäß funktionieren. Xcode lässt mich jedoch keine Suchleiste in eine UICollectionViewController
setzen. Ich kann auch kein generisches UIViewController
verwenden, da die Sammlungsansicht nicht ordnungsgemäß funktioniert. Wie kann ich die Funktionalität erreichen, die ich möchte?Wie kann ich eine Suchleiste oberhalb einer UICollectionView hinzufügen?
Antwort
UICollectionView
innerhalb UICollectionViewController
ist nicht zwingend erforderlich. UICollectionView
ist wie UITableView
und kann überall hinzugefügt werden. Alles, was Sie tun müssen, ist die Implementierung der Protokolle UICollectionViewDelegate
und UICollectionViewDataSource
. Sie können dem folgenden Lernprogramm Supplementary Header folgen und Suchleiste als zusätzlichen Header von UICollectionView
hinzufügen.
Ich tat das aber ich bekam NSExceptions, obwohl ich UICollectionViewDelegate und UICollectionViewDataSource implementierte –
Was war die Ausnahme? –
CollectionView + SearchBar mit Swift3 + Storyboard Implementierung.
Erstellen der Kopfansicht:
Erstellen der Suchleiste:
Erstellen Sie die wiederverwendbare Ansicht benutzerdefinierte Klasse
Stellen Sie die wiederverwendbare Ansicht benutzerdefinierte Klasse
Erstellen Sie die Suchleiste Ausgang
Trick: Verbinden Sie die Suche Bar Delegierter COLLECTION VIEW Klasse, geht die Suchleiste Ausgang zum CUSTOM REUSABLE ANSICHT DER KLASSE
die Collectionkopfmethode Protokoll implementieren
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
if (kind == UICollectionElementKindSectionHeader) {
let headerView:UICollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "CollectionViewHeader", for: indexPath)
return headerView
}
return UICollectionReusableView()
}
die Searchbar Delegierten Set
class MyCollectionViewController: (other delegates...), UISearchBarDelegate {
Und schließlich wird Ihr die Suchleiste Delegatmethoden in Ihrer Klasse Collection
//MARK: - SEARCH
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
if(!(searchBar.text?.isEmpty)!){
//reload your data source if necessary
self.collectionView?.reloadData()
}
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if(searchText.isEmpty){
//reload your data source if necessary
self.collectionView?.reloadData()
}
}
Leider hat dieser Ansatz ein paar Nebenwirkungen; Die Suchleiste erscheint in jedem Abschnittskopf, die Suchleiste wird aus der Ansicht herausscrollen, und die Suchleiste verliert ihren ersten Antwortsstatus, wenn self.collectionView? .reloadData() aufgerufen wird. Schauen Sie sich Jeremiah-de Schritt für Schritt Repo für die Verwendung von UISearchController mit UICollectionView https://github.com/jeremiah-de/CollectionViewSearch/tree/basic-collection-view – aumansoftware
- 1. Wie kann ich eine Suchleiste hinzufügen?
- 2. Wie UICollectionView in UICollectionView hinzufügen (programmgesteuert)
- 3. Hinzufügen einer statischen Zelle zu einer UICollectionView
- 4. UICollectionView Hinzufügen von Bild zu einer Zelle
- 5. Suchleiste unter der Navigationsleiste hinzufügen?
- 6. Wie Suchleiste in Navigationsleiste für iPhone hinzufügen?
- 7. UISearchBar in einer UICollectionView verschwindet mit UISearchDisplayController
- 8. Kann ich setProgress benutzen, um eine Suchleiste programmatisch zu ändern
- 9. Wie vergrößere ich die Suchleiste?
- 10. Hinzufügen einer Suchleiste zu Google Place Picker (GMSPlacePicker)
- 11. Wie kann ich eine ProgressDrawable-Größe einer benutzerdefinierten Suchleiste auf kleiner als die ProgressBackground
- 12. Wie kann ich eine Zusammenfassungszeile zu einer Drupal View hinzufügen?
- 13. Wie kann ich einer Figurinstanz eine Pyplot-Funktion hinzufügen?
- 14. Wie kann ich eine Spalte zu einer vorhandenen Tabelle hinzufügen?
- 15. Wie kann ich eine Linie zu einer der Facetten hinzufügen?
- 16. Wie verbinde ich UICollectionView in einer benutzerdefinierten UIView - Swift
- 17. Hinzufügen einer Suchleiste zur iPhone-Anwendung, die alphabetische Abschnitte verwendet?
- 18. UILabel unter UICollectionView Cell hinzufügen
- 19. Appcelerator - Suchleiste in Aktionsleiste auf Android hinzufügen
- 20. Voiceover kann nur eine Seite einer uicollectionview sehen
- 21. Wie Schlagschatten in uicollectionview mit swift hinzufügen?
- 22. Horizontale UICollectionView mit UIRefreshControl
- 23. Kann ich einer Klasse eine Methode aus einer Kompilierungszeitanmerkung hinzufügen?
- 24. iPhone - Benutzerdefinierte Schaltflächen in einer Suchleiste?
- 25. Aktualisieren einer UICollectionview
- 26. Wie kann ich mit Suchleiste Wörterbuch Array filtern
- 27. Hinzufügen eines UISearchControllers zu einer Nicht-Tabellenansicht
- 28. Python PrettyTable: Titel oberhalb der Kopfzeile der Tabelle hinzufügen
- 29. Wie kann ich primitive C# -Typen oberhalb von RedisValue beibehalten, wenn ich StackExchange.Redis verwende
- 30. Wie ändere ich die Breite dieser Suchleiste?
finden Sie den folgenden Link aufgerufen werden, dies hilft Ihnen kann. [beispiel-how-to-integrate-uicollectionview-mit-uisearchbar -1] (https://maniacdev.com/2015/01/example-how-to-integrate-uicollectionview-with-uisearchbar) – Chandan