title: Move button when keyboard appears swift
body: <p>In a UIViewController I have several text fields and a button is on the bottom of the UIViewController. 
  For the button, I have set a bottom constraint with a constant of 0. 
  Then I made an outlet from the bottom constraint to the UIViewController. </p>
  
  <p>When I run my code, the button does not move upwards. I have seen suggestions on stackoverflow that I should add UIScrollView, but that means, I would have to delete all the objects on the UIViewController, put the UIScrollView and then put my objects on the UIVIewController again. </p>
  
  <pre><code>@IBOutlet weak var bottomConstraint: NSLayoutConstraint!
  
  // When tapping outside of the keyboard, close the keyboard down
  override func touchesBegan(touches: Set&lt;UITouch&gt;, withEvent event: UIEvent?) {
      self.view.endEditing(true)
  }
  
  // Stop Editing on Return Key Tap. textField parameter refers to any textfield within the view
  func textFieldShouldReturn(textField: UITextField) -&gt; Bool {
      textField.resignFirstResponder()
      return true
  }
  
  // When keyboard is about to show assign the height of the keyboard to bottomConstraint.constant of our button so that it will move up
  func keyboardWillShow(notification: NSNotification) {
      if let userInfo = notification.userInfo {
          if let keyboardSize: CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
              bottomConstraint.constant = keyboardSize.size.height
              view.setNeedsLayout()
          }
      }
  }
  
  // When keyboard is hidden, move the button to the bottom of the view
  func keyboardWillHide(notification: NSNotification) {
      bottomConstraint.constant = 0.0
      view.setNeedsLayout()
  }
  </code></pre>
  
  <p><a href="https://i.stack.imgur.com/qIWcR.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/qIWcR.png" alt="enter image description here"></a></p>