2016-03-22 16 views
6

Ho un problema con il UISearchBar programmazione aggiunta all'interno di un UIView (su uno dei panorami figlio di un TabBarController):UISearchController: barra di ricerca inizialmente troppo larghe

Quando lo schermo viene prima caricato, la barra di ricerca è troppo ampio per adattarsi pienamente alla vista. Tuttavia, quando si tocca all'interno e quindi si tocca il pulsante Cancel, la barra di ricerca viene ridimensionata in modo tale che si adatti bene a UIView.

Ho caricato un progetto di esempio su GitHub: il comportamento errato può essere osservato nella seconda scheda, nella classe BlueViewController. Ho già provato numerose cose, come probabilmente è possibile vedere nel codice e cercato tra le più popolari risposte StackOverflow, ma nessuno di loro ha risolto il problema fino ad ora.

Ecco il link al progetto: https://github.com/asia-t/tabbartest

Sarebbe bello se qualcuno potesse far luce su ciò che può essere succedendo lì.

enter image description here

risposta

7

si potrebbe implementare il seguente metodo per risolvere telaio della barra di ricerca:

override func viewDidLayoutSubviews() { 
    var searchBarFrame = searchController.searchBar.frame 
    searchBarFrame.size.width = vanillaSearchBar.frame.size.width 
    searchController.searchBar.frame = searchBarFrame 
} 
+0

Aha! Quello lo ha risolto davvero :-) Ho provato una cosa simile, ma nel posto sbagliato - l'ho fatto in 'viewDidLoad', dove in realtà ha reso le cose un po 'peggio. Questo ha perfettamente senso - grazie! –

Problemi correlati