Verschieben eines Textfelds mit automatischen Layouteinschränkungen, wenn die Tastatur angezeigt wird

Ich habe ein Textfeld in der Suchleiste und eine Tabellenansicht (für Google Auto Complete), die ich übersetzen möchte, wenn die Tastatur angezeigt wird. Ich mache dies erfolgreich, erhalte jedoch Warnungen / Fehler bezüglich meiner Einschränkungen. Ich verwende das automatische Layout über das Storyboard in dieser Ansicht und habe versucht, die Einschränkungen zu deaktivieren / aktivieren, bevor / nachdem die Tastatur ein- / ausgeblendet wurde. Diese Fehler werden jedoch weiterhin angezeigt. Deaktiviere ich das automatische Layout nicht richtig? Ich folgte, was in @ gegeben wurDie SO Antwort.

override func viewDidLoad() {
    ...
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil)
    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil)
    ...
}
func keyboardWillShow(sender: NSNotification) {
    self.pixieLabel.hidden = true
    self.searchBar.setTranslatesAutoresizingMaskIntoConstraints(true)
    self.startingTableView.setTranslatesAutoresizingMaskIntoConstraints(true)
    self.searchBar.frame.origin.y -= 150
    self.startingTableView.frame.origin.y -= 150
}
func keyboardWillHide(sender: NSNotification) {
    self.pixieLabel.hidden = false
    self.searchBar.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.startingTableView.setTranslatesAutoresizingMaskIntoConstraints(false)
    self.searchBar.frame.origin.y += 150
    self.startingTableView.frame.origin.y += 150
}

Lösungscode
func keyboardWillShow(sender: NSNotification) {
    self.pixieLabel.hidden = true
    self.seachBarTopConstraint.constant -= 150
    self.searchBar.layoutIfNeeded()
}
func keyboardWillHide(sender: NSNotification) {
    self.pixieLabel.hidden = false
    self.seachBarTopConstraint.constant += 150
    self.searchBar.layoutIfNeeded()
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage