Ich versuche, wenn die Tastatur erscheint, die Ansicht nach oben zu verschieben. Dies funktioniert auf zwei Ansichten, aber auf der dritten derselbe Code, der die Ansicht scheinbar um einen bestimmten Betrag nach unten bewegt, und dann zurück zu dem genauen Ort bewegt wird, an dem es gestartet wurde, oder so scheint die Animation. Debugging, ich sehe nirgendwo anders das self.view.frame wird gesetzt aber diese Methode. Außerdem sehen die Offsets richtig aus, als ob die Ansicht sich wie die anderen Ansichten nach oben bewegen sollte. Sehen Sie sich die keyboardWillShow-Methode unten an.Wechselnde Ansichten Frame-Ursprung bewirkt, dass es wieder an Ort und Stelle springt
func keyboardWillShow(notification: NSNotification){
if self.origFrame == nil{
self.origFrame = self.view.frame
}
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue(){
var testRect = self.view.frame
testRect.size.height -= keyboardSize.height
if !testRect.contains(loginBtn!.frame.origin){
let bottomSpace = self.view.frame.size.height - loginBtn.frame.origin.y - loginBtn.frame.size.height
let keyboardOverlap = keyboardSize.height - bottomSpace
let newY = self.origFrame!.origin.y - keyboardOverlap
self.view.frame.origin.y = newY
}
}
}
Verwenden Sie Auto-Layout? Es ist normalerweise eine schlechte Übung, die Ansichten zu ändern, wenn Sie das automatische Layout verwenden. –
@LukePatterson Ich verwende Beschränkungen, um meine Ansichten zu gestalten. Was wäre der beste Weg, um die Ansicht zu verschieben, wenn die Tastatur in diesem Fall erscheint? – steventnorris
Steven, wie wäre es, wenn Sie die Beschränkungen programmgesteuert ändern, wenn die Tastatur ein-/ausgeblendet wird –