In genere, un UISearchDisplayController, quando attivato, attenua il TableView e mette a fuoco la barra di ricerca. Non appena si inserisce del testo nella barra di ricerca, viene creato un oggetto SearchResultsTableView che viene visualizzato tra la barra di ricerca e la tastiera. Il delegato searchDisplayController viene chiamato quando viene caricato/mostrato/nascosto/scaricato questo secondo UITableView. Di solito mostra risultati di ricerca in tempo reale o voci di completamento automatico durante la digitazione.UISearchDisplayController senza tabella risultati Visualizza?
Nella mia app, voglio cercare un servizio web e non voglio chiamare il servizio web per ogni lettera che l'utente inserisce. Pertanto, voglio disabilitare completamente searchResultsTableView e mantenere l'overlay nero oscurato mentre entra nel testo. Vorrei quindi attivare la ricerca (con una schermata di caricamento) una volta che ha colpito il pulsante di ricerca.
Restituire solo zero righe per la searchResultsTableView non sembra gradevole poiché visualizza un searchResultsTableView vuoto con un messaggio "nessun risultato". Ho provato a nascondere il tavolo quando appare (searchDisplayController:didLoadSearchResultsTableView:
) che funziona, ma anche l'overlay dimmerato in nero è nascosto in modo che la tabella sottostante sia completamente visibile di nuovo.
Qualsiasi idea oltre a ricreare la funzionalità UISearchDisplayController da zero?
Esattamente quello che stavo cercando. Molte grazie! – Zargony
Funziona per la prima volta, ma se cerchi, fai clic sulla x per cancellare e quindi inserisci altro testo, mostra tutte le righe con sfondo nero opaco e linee di divisione bianche.Ho indovinato che potrebbe essere l'UITableCellViews, così ho aggiunto questo a voi funzione ed ha funzionato: per (UIView * visualizzazione secondaria in self.searchDisplayController.searchResultsTableView.subviews) { \t \t [visualizzazione secondaria removeFromSuperview]; } – mclin
sembra non proprio pulito :( – Martin