Seltsames Verhalten der UISearchDisplayController-Ansicht in iOS 7, wenn sie in die Navigationsleiste eingebettet ist

Ich erstelle eine App für iOS 7. Ich versuche, einen UISearchDisplayController in der Navigationsleiste einzustellen.

Ich habe es so eingerichtet: Im Storyboard habe ich der Ansicht meines Ansichts-Controllers eine "Suchleiste und einen Suchanzeige-Controller" hinzugefügt und ihn auf (0,0) relativ zur oberen Layout-Anleitung eingestellt. Ich setze Einschränkungen, um nach links, oben und rechts zu stecken. (Ich habe mit den Einschränkungen gespielt, ich habe sie komplett entfernt, es spielt keine Rolle.) Außerdem habe ich meine Tabellenansicht. Wenn ich die Suchleiste zur Ansicht im Storyboard hinzugefügt habe, werden automatisch Ausgänge für searchDisplayController und searchBar-Delegaten eingerichtet. Im Code habe ichself.searchDisplayController.displaysSearchBarInNavigationBar = YES; Ich habe zwei Probleme:

1) Ohne Schaltflächen für die Suchleiste (Interface Builder -> Suchleiste auswählen -> Optionen: keine ausgewählt) befindet sich die Suchleiste in der Mitte des Bildschirms:

Wenn ich auf die Navigationsleiste klicke, wird die Suchleiste bearbeitet:

Beachten Sie auch, dass die dunkle Überlagerung von der Navigationsleiste versetzt zu sein scheint. Es scheint mir, dass der Raum die gleiche Höhe wie die Navigationsleiste hat. Als wäre es um so viel runtergeschoben worden. Wenn die Suchergebnisse angezeigt werden, wird der obere Rand der Inhaltsansicht um denselben Betrag nach unten verschoben (weitere Bilder folgen), wodurch ich zum zweiten Problem komme.

2) Ich habe eine Weile damit rumgespielt und beschlossen, die Option zu aktivieren, damit der Abbrechen-Button angezeigt wird. Jetzt habe ich die Suchleiste korrekt in die Navigationsleiste eingebettet, aber die Überlagerung ist immer noch nach unten verschoben:

Auch hier wird die Ansicht der Suchergebnis-Tabelle um denselben Betrag nach unten verschoben (beachten Sie die Bildlaufleiste auf der rechten Seite):

Noch seltsamer ist, dass ich einen Rahmen in der Tableview-Ebene des Search Display Controllers gesetzt habe, und dieser erscheint korrekt:

Ich habe den UISearchDisplayController noch nie benutzt und weiß nicht, wie er eingerichtet wird, aber funktionell funktioniert er einwandfrei. Ich habe einige ähnliche Posts gelesen, aber der einzige Rat ist, sie zu hacken, indem Sie die Frames anpassen und manuelle Offsets einstellen. Ich würde lieber wissen, was das verursacht, ist es ein Fehler? Etwas, was ich falsch mache? Wenn es ein Fehler ist, kann ich auf eine Lösung warten. Es scheint eine so grundlegende Sache zu sein, dass tausend Leute es ohne Probleme gemacht haben müssen, also habe ich das Gefühl, dass ich es irgendwie nicht richtig einrichte. Vielen Dank für Ihre Eingabe.

Antworten auf die Frage(9)

Ihre Antwort auf die Frage