Frage

Ich habe ein Problem mit der Erstellung einer modalen Suchansicht, die das Verhalten des Wetter -App emuliert. Insbesondere gibt es zwei Animationen, die mich stören und nicht benötigte Verzögerungen von 0,2 s einführen:

  • Wenn die modale Ansicht sichtbar wird, fokussieren ich dem Fokus auf die UISearchDisplayController.searchBar Durch das Kaling werden viewDidAppear. Die Tastatur ist jedoch nicht sichtbar, wenn die modale Ansicht eingeschlagen ist, aber weitere 0,2s benötigt, um nach der Animation des modalen Ansichtsübergangs abgeschlossen zu werden. Verschieben Sie den Anruf auf einen anderen Rückruf wie viewWillAppear oder viewDidLoad Habe nichts Gutes getan, die Tastatur wird nicht überhaupt nicht angezeigt.

  • Wenn der Benutzer abbrechen, findet vor dem Delegierter eine weitere Animation statt searchDisplayControllerDidEndSearch Die Methode wird aufgerufen, die das Feld Suchtext erweitert und die Schaltfläche "schmelzen". Auch diese Animation ist nicht verdammt, da die Modalansicht beim Berühren der Taste aussteigen soll.

  • Wenn ich dieselbe Ansicht entlasse und neu bezeichne, rutscht die Tastatur nicht nur nach dem Übergang ein, sondern auch die Taste der Abbrechen (zum Glück gleichzeitig).

Ich bin mir eines hier beschriebenen ähnlichen Problems bewusst: Tastaturanimationsprobleme beim Aufrufen werden in einem Modal View Controller. Es scheint jedoch, dass das Verhalten der Suchleiste schlechtig ist, als das des Textfelds. Ich konnte die von diesem Autor beschriebenen Schritte nicht reproduzieren, um die Tastatur durch Anrufe sichtbar zu machen becomeFirstResponder in viewDidLoad.

Grüße, Chris

War es hilfreich?

Lösung

Ich glaube, ich habe deine Antwort gefunden. Wenn Sie eine Suchleiste über den Schnittstellenbauer hinzufügen, können Sie dies auf zwei Möglichkeiten tun: "Suchleiste" und "Suchleiste und Suchanlage -Controller".

Ich benutzte die zweite und hatte das gleiche Problem, das Sie beschrieben haben. Ich konnte nur die Tastatur auf "viewDIdAppear" aufrufen (mit dem Firstresponder). Aber wenn Sie es tun, fügen Sie nur die Suchleiste hinzu, es funktioniert. Jetzt kann ich auf "ViewDidload" den Firstresponder aufrufen, und die Tastatur wird zusammen mit der Ansicht selbst angezeigt.

Ich meine ein bisschen mehr Arbeit, aber wirklich nicht viel. Sie müssen Ihren Controller so einstellen, dass er der Delegierte der Suchleiste ist. Ich habe eine Listenansicht für die Ergebnisse hinzugefügt und meinen Controller zu seinem Delegierten und seiner Datenquelle gemacht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top