UISearchController Search Bar Position Drops 64 Punkte

Die Suchleiste erscheint genau 64 Punkte zu niedrig:

Alle anderen Frames sind genau richtig.

Bearbeiten: - Es ist dasUISearchController 's Ansicht, die das falsche @ bekomorigin.y. Es wird auf 64 gesetzt, wenn es 0 sein sollte. Wenn ich diese Methode hinzufüge:

- (void)didPresentSearchController:(UISearchController *)searchController
{
  [super didPresentSearchController:searchController];
  searchController.view.frame = CGRectMake(0, 0, searchController.view.frame.size.width, searchController.view.frame.size.height);

}

Dann richten sich die Ansichten aus. Allerdings ist es nervös, weil es springt. Wenn ich den Rahmen in @ ändewillPresentSearchController es funktioniert nicht, da der Controller nach seiner Präsentation eine Art Layout erstellen muss.

Wenn ich SparkInspector verwende und den Rahmen desUISearchBarContainerView Von Origin 64 (was es auf 0 gesetzt wird) ist das Problem behoben.

Hier ist meine relevante Konfiguration:

self.searchResultsController = [[GMSearchTableViewController alloc] init];
self.definesPresentationContext = YES;
self.searchController = [[UISearchController alloc] initWithSearchResultsController:self.searchResultsController];
self.searchController.dimsBackgroundDuringPresentation = YES;
self.searchController.hidesNavigationBarDuringPresentation = NO;
self.searchController.searchBar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
[self.view addSubview:self.searchController.searchBar];

Ich verwende den Interface Builder nicht, alles ist im Code konfiguriert. Ich bin mir sicher, dass die EinstellungdefinesPresentationContext ist richtig

The VC sitzt in einem regulärenUINavigationController, das sich in einem SplitViewController befindet (aber auch auf dem iPhone gibt es ein Problem).

Ich habe das Gefühl, dass mir eine einfache Konfigurationsoption für das @ fehlUINavigationBar

Ich habe auch einen anderen Controller, der ein benutzerdefiniertes Container View Controller-Modell verwendet, das komplexer ist und funktioniert.

Wenn ich @ einstel

self.definesPresentationContext = NO;

Das passiert:

So jetzt dasUISearchBar wird korrekt positioniert, aber der Präsentationskontext ist falsch, wodurch dasUISearchController 's Tabellenansicht, um die vollständige Ansicht einzunehmen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage