Wie verhindere ich, dass UITextField
von der Tastatur versteckt wird?
Ich nehme an, dass dies auf einem UIViewController geschieht. Wenn dies der Fall ist, können Sie die folgenden 2 Funktionen einrichten, die aufgerufen werden, wenn die Tastatur ein- / ausgeblendet wird, und in ihren Blöcken entsprechend reagieren.
Einrichten des UIViewControllers:
%Vor%Zuerst in ViewDidLoad:
%Vor%Implementieren Sie dann die folgenden 2 Funktionen, um auf Ihre NSNotificationCenter-Funktionen zu reagieren, die oben in ViewDidLoad definiert wurden. Ich gebe Ihnen ein Beispiel für das Verschieben der gesamten Ansicht, aber Sie können auch nur die UITextFields animieren.
%Vor%Vergessen Sie nicht, die Benachrichtigungen zu entfernen, wenn Sie Ihre Ansicht verlassen
%Vor%Hier ist die einfache Lösung in Swift. Ich habe einen Objective-C-Code übersetzt, der in der Vergangenheit für mich funktioniert hat.
%Vor% Wenn Sie UIScrollView
oder eine seiner Unterklassen verwenden, z. B. UITableView
, können Sie auch die Eigenschaft contentInset
bearbeiten. Auf diese Weise müssen Sie sich nicht mit frame
, bounds
, NSLayoutConstraint
oder NSLayoutAnchor
anlegen.
Zuerst sollten Sie scrollview haben Schritt 1: Finden Sie die Höhe der Tastatur
%Vor%Schritt 2: Binden Sie die delegete-Methoden des Textfelds
%Vor%Swift 4 Code, Es ist sehr einfach, anstatt viele Dinge wie NSNotificationCenter zu verwenden, dann die Höhe von allem zu berechnen und Bedingungen zu machen macht dies komplizierter,
Der einfache Weg, dies zu tun, ist unten codiert, es wird funktionieren, um die Ansicht nach oben zu bewegen.
%Vor%Sie können den Wert -250 entsprechend der Platzierung Ihrer Textfelder ändern.