angezeigt wird. Ich habe zwei Textfelder in einer Unteransicht und versuche Subview nach oben zu verschieben, wenn Textfelder innerhalb von Subview und Tastatur angezeigt werden. Das Problem ist, dass die Teilansicht nach unten verschoben wird, wenn die Teilansicht geöffnet ist und ich auf das zweite Textfeld geklickt habe. Es sollte sich verstecken, wenn ich irgendeine Ansicht außer Textfeldern berühre.Unteransicht nach oben verschieben, wenn die Tastatur über Textfeldern in der Unteransicht
Die Definition meiner zwei Textfeld und Subview;
@IBOutlet weak var emailTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var loginView: UIView!
Der Code in viewDidLoad
NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillShow), name: .UIKeyboardWillShow, object: nil)
NotificationCenter.default.addObserver(self, selector:#selector(keyboardWillHide), name: .UIKeyboardWillShow, object: nil)
und zwei weiteren Funktionen, die ein- und ausgeblendet Tastatur
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if loginView.frame.origin.y == 0{
let height = keyboardSize.height
self.loginView.frame.origin.y += height
}
}
}
func keyboardWillHide(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
if loginView.frame.origin.y != 0 {
let height = keyboardSize.height
self.loginView.frame.origin.y -= height
}
}
}
Ich mag würde wissen, wie kann ich subview vermeiden, als ich Textfeld klicken, während Unteransicht ist up.
Ich will nicht subview bis an die Spitze der self.view zu bewegen, ich will nur subview so viel wie Tastaturen Höhe zu bewegen. Und danke, aber dein Vorschlag hat nicht so funktioniert, wie ich es erwartet hatte, genauso wie bei mir. – mehmeet43
Mein Code verschiebt die Ansicht entsprechend der Höhe der Tastatur nach oben. Standardmäßig ist Ihr y-Ursprung der Tastatur 0 und wenn die Tastatur hochkommt, nehmen wir an, dass die Höhe 100 ist, also sollte Ihre Ansicht bei -100 y-Ursprung liegen, so tut es mein Code. Mein Code wird die Ansicht unabhängig von der letzten Quelle auf 100 Punkte verschieben. Aber du hast die Sicht nach oben verschoben, um 100 Punkte von seiner vorherigen y-Position nach oben zu bewegen. Also entferne ich einfach + = mit (- height) es wird nicht das y subtrahieren, es negiert nur y y Wert. –