Я пытаюсь сделать UIView с UITextField и UIButton в нем - как приложения чата.клавиатура появляется действие
Я хочу обнаружить уровень клавиатуры, появляющийся на экране, и изменить его ограничение по высоте в зависимости от этого.
Как это сделать?
Теперь у меня есть это
@IBOutlet weak var messageTextField: UITextField!
@IBOutlet weak var bottomBarConstrains: NSLayoutConstraint!
override func viewDidLoad()
{
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}
override func didReceiveMemoryWarning()
{
super.didReceiveMemoryWarning()
}
@IBAction func sendAction(sender: AnyObject)
{
messageTextField.resignFirstResponder();
}
func keyboardWillShow(notification: NSNotification)
{
var info = notification.userInfo!
let keyboardFrame: CGRect = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue()
let duration = info[UIKeyboardAnimationDurationUserInfoKey] as! Double
UIView.animateWithDuration(duration, delay: 2, options: UIViewAnimationOptions.CurveEaseIn, animations:
{() -> Void in
self.bottomBarConstrains.constant = keyboardFrame.size.height;
},
completion: nil);
}
func keyboardWillHide(notification: NSNotification)
{
var info = notification.userInfo!
let duration = info[UIKeyboardAnimationDurationUserInfoKey] as! Double
UIView.animateWithDuration(duration, animations: {() -> Void in
self.bottomBarConstrains.constant = 0;
})
}
Но это происходит без анимации