Quando si esegue una ricerca su un set di dati tramite UISearchBar
, i risultati della ricerca vengono visualizzati correttamente nello UITableViewController
UITableView
. Tuttavia, scorrendo verso il basso attraverso i risultati, le righe di UITableView
appaiono visibilmente sotto lo UINavigationBar
e la barra di stato del simulatore.Risultati della ricerca che si spostano in modo visibile sotto la barra di stato
Questo ovviamente non è l'aspetto che sto andando per. Idealmente, mi piacerebbe che lo UISearchBar
fungesse da intestazione del UITableView
con tutti i risultati di ricerca che sono contenuti sotto i pulsanti dell'ambito UISearchBar
, ma i miei tentativi non hanno avuto successo.
Di seguito è riportata l'impostazione Storyboard delle proprietà relative UITableViewController
e UITableView
.
Di seguito si riporta il codice relativo che sto usando per impostare la UISearchController
e la sua UISearchBar
.
BallotTunesSearchTableViewController.h
@interface BallotTunesSearchTableViewController : UITableViewController <UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate>
BallotTunesSearchTableViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
self.appDelegate = [[UIApplication sharedApplication] delegate];
// Initialize the search controller
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
// Setup the search bar
self.searchController.searchBar.delegate = self;
self.searchController.searchBar.scopeButtonTitles = [NSMutableArray arrayWithObjects:SongScopeName, ArtistScopeName, AlbumScopeName, nil];
self.tableView.tableHeaderView = self.searchController.searchBar;
}
Aggiornamento: Si noti che il UITableViewController
incorporato in un UINavigationController
, e quando si imposta la semitrasparenza del UINavigationBar
a NO
, lo UISearchBar
scivola fuori dalla vista insieme allo UINavigationBar
.
Si noti inoltre che io non sono l'attuazione del UISearchBar
in Storyboard (tuttavia, posso prendere questa strada, se non riesco a ottenere la mia messa a punto corrente al lavoro).
Provare a impostare la barra di spostamento in modo che non sia traslucida. self.navigationController.navigationBar.translucent = NO; –
@MikeWelsh Ottimo suggerimento. Tuttavia, quando si disattiva la traslucenza di 'UINavigationBar',' UISearchBar' esegue il roll-out della vista quando selezionato perché si basa sull'essere incorporato in 'UINavigationBar'. – Ryan
Questo VC è incorporato in un UINavigationController? Come stai presentando questa ricerca VC? –