Ich habe eine UIViewController
mit zwei eingebetteten Containern und einem Textfeld. Wenn der Benutzer auf das Textfeld tippt, bewegt sich der gesamte Bildschirm nach oben, so dass die Tastatur passen kann, ohne den unteren Teil der Behälter abzudecken. Dies ist, wie es in meiner Geschichte Board aussieht:Wie kann ich meinen Container nach oben bewegen, wenn der Benutzer eine Bildschirmtastatur in swift anzeigt?
Mein Code sieht wie folgt aus:
override func viewDidLoad() {
super.viewDidLoad()
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
// view.addGestureRecognizer(tap)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillChangeFrameNotification, object: nil)
}
func keyboardWillShow(notification: NSNotification) {
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
if(isKeyboardShown == false){
realKeyboardSize = CGRect(x: keyboardSize.origin.x, y: keyboardSize.origin.y, width: keyboardSize.width, height: keyboardSize.height)
isKeyboardShown = true
self.view.frame.origin.y -= realKeyboardSize!.height
}else{
isKeyboardShown = false
self.view.frame.origin.y += realKeyboardSize!.height
}
}
}
Ist es möglich, den unteren Behälter, statt des gesamten Bildschirms zu bewegen?
Ich stelle mir das so funktioniert:
topContainer
bleibt unberührt, lowerContainer
bewegt sich nach oben, so dass die Hälfte davon hinter topContainer
verborgen ist und die Tastatur sichtbar ist. Wenn der Benutzer die Tastatur versteckt, wird alles wieder normal.
verwenden Sie die automatische Layoutprüfung http://stackoverflow.com/questions/31356293/uitableview-and-uiview-with-keyboardwillshow/31356527#31356527 –
danke, ich tat, was Sie vorgeschlagen und hinzugefügt Diese Zeilen in viewDidLoad: 'NSNotificationCenter.defaultCenter(). addObserver (self, Selektor: Selector (" keyboardWillShow: "), Name: UIKeyboardWillShowNotification, Objekt: nil) NSNotificationCenter.defaultCenter(). addObserver (self, Selektor: Selector (" keyboardWillHide : "), Name: UIKeyboardWillHideNotification, Objekt: nil)' Aber jetzt, wenn ich auf das Textfeld tippe, verschwindet es komplett :) Ich habe versucht, nur 'keyboardWillShow' hinzuzufügen und dann bewegt sich der Container nach oben, aber ich sehe die Tastatur selbst nicht. – user3766930
hm für jetzt erscheint die Tastatur, aber der Bildschirm bewegt sich nicht nach oben. Wenn ich jedoch die Tastatur verberge, wird der Bildschirm etwas dunkler und das Textfeld verschwindet. Weißt du, was hier das Problem sein könnte? – user3766930