9

Ho un popover con un UITableViewController come controller della visualizzazione del contenuto. La vista tabella ha un UISearchBar come vista dell'intestazione.Spazio extra sopra la barra di ricerca quando UISearchDisplayController è attivo

Ora, su iOS 6 tutto sembra a posto quando lo UISearchDisplayController diventa attivo. Ma su iOS 7 ci sarà uno spazio extra sopra la barra di ricerca.

The extra space above the search bar on iOS 7

Così come posso liberarmi di questo spazio in più al di sopra della barra di ricerca su iOS 7?

risposta

25

La soluzione è impostare la proprietà edgesForExtendedLayout di UITableViewController a UIRectEdgeNone.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { /// iOS 7 or above 
     self.edgesForExtendedLayout = UIRectEdgeNone; 
    } 
} 

Questa proprietà ha il valore UIRectEdgeAllby default. Ciò significa che tutti i bordi della vista saranno estesi per mantenere uno spazio aggiuntivo per la barra di stato (l'altezza dello spazio sopra la barra di ricerca è esattamente 20px, la stessa altezza della barra di stato).

+0

Grazie! btw, ho rimosso la condizione if perché ha dato un avvertimento che nessun selettore di questo tipo è stato implementato e funziona correttamente. – user1938695

+1

In Interface Builder è possibile semplicemente disabilitare l'attributo controller 'Under Top Bars' nella sezione" Estendi bordi ". –