2016-05-02 27 views
5

Ho un controller di visualizzazione con una vista tabella e un UISearchController. Durante l'esecuzione dell'app, ho scoperto che la barra di ricerca si sovrappone al contenuto quando è attiva. Cosa devo regolare per rendere il contenuto non sovrapposto quando la barra di ricerca è attiva?UISearchBar si sovrappone a UITableView quando attivo

vista normale:

enter image description here

barra di ricerca è attivo:

enter image description here

impostazioni View Controller:

enter image description here

+0

Hai eseguito 'edgesForExtendedLayout = .None' e' automaticallyAdjustsScrollViewInsets = false'? – ozgur

+0

@ozgur No, non l'ho fatto. Ho incluso uno screenshot delle impostazioni. – Boon

+0

La barra di ricerca si trova sotto la barra di navigazione in un'immagine e in essa in un'altra, spiega come viene presentata e cosa è una sottoview di – Wain

risposta

3

Il problema è che a causa del avete automaticallyAdjustsScrollViewInsets = true

deselezionare che enter image description here

aiuterà :)

+0

Grazie - questo insieme a una modifica al vincolo del layout lo corregge. – Boon

+0

Dovresti regolare gli angoli della vista di scorrimento di solito per la vista tabella? – Boon

+0

ya anche quando sto facendo con autolayout, ho preferito spegnerlo –

1

È possibile u SE Le 'UISearchController' in questo modo:

_searchController = [[UISearchController alloc] initWithSearchResultsController:self.resultsTableController]; 
self.searchController.searchResultsUpdater = self; 
[self.searchController.searchBar sizeToFit]; 
self.tableView.tableHeaderView = self.searchController.searchBar; 

// we want to be the delegate for our filtered table so didSelectRowAtIndexPath is called for both tables 
self.resultsTableController.tableView.delegate = self; 
self.searchController.delegate = self; 
self.searchController.dimsBackgroundDuringPresentation = NO; // default is YES 
self.searchController.searchBar.delegate = self; // so we can monitor text changes + others 

// Search is now just presenting a view controller. As such, normal view controller 
// presentation semantics apply. Namely that presentation will walk up the view controller 
// hierarchy until it finds the root view controller or one that defines a presentation context. 
// 
self.definesPresentationContext = YES; // know where you want UISearchController to be displayed 

È possibile utilizzare questo lavoro Apple Reference Sample code per maggiori dettagli.

+0

Il mio codice è esattamente lo stesso di questo. – Boon

+0

si dovrebbe inserire 'SearchBar' nel headerview della tabella. – itechnician

0

Prova a mettere il vostro SearchBar nell'intestazione di TableView.

+0

Già facendo. – Boon

+0

spero che tu abbia ottenuto la risposta .... sopra di #PKT ..è funzionante ..? – commando24