9

Mam popover z UITableViewController jako kontrolerem widoku treści. Widok tabeli ma UISearchBar jako widok nagłówka.Dodatkowa przestrzeń nad paskiem wyszukiwania, gdy aktywny jest obiekt UISearchDisplayController

Teraz na iOS 6 wszystko wygląda dobrze, gdy UISearchDisplayController staje się aktywny. Ale w systemie iOS 7 nad paskiem wyszukiwania pojawi się dodatkowe miejsce.

The extra space above the search bar on iOS 7

Więc jak mogę pozbyć się tej dodatkowej przestrzeni nad paskiem wyszukiwania na iOS 7?

Odpowiedz

25

Rozwiązaniem jest ustawienie właściwości edgesForExtendedLayout z UITableViewController na UIRectEdgeNone.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

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

Ta właściwość ma wartość UIRectEdgeAllby default. Oznacza to, że wszystkie krawędzie widoku zostaną rozszerzone, aby zachować dodatkową przestrzeń dla paska stanu (wysokość obszaru nad paskiem wyszukiwania wynosi dokładnie 20 pikseli, ta sama wysokość paska stanu).

+0

Dziękujemy! btw, usunąłem warunek if, ponieważ ostrzegał, że taki selektor nie został zaimplementowany i działa dobrze. – user1938695

+1

W Interface Builder można po prostu wyłączyć atrybut kontrolera 'Under Top Bars' w sekcji" Extend Edges ". –

Powiązane problemy