/// 键盘通知
func doNotic(){
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginView.keyboardWillShow(_:)), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(LoginView.keyboardWillHide(_:)), name: UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(notification:NSNotification){
let userInfo : NSDictionary = notification.userInfo!
self.KeyboardState(true, keyboardInfo: userInfo)
}
func keyboardWillHide(notification:NSNotification){
let userInfo : NSDictionary = notification.userInfo!
self.KeyboardState(false, keyboardInfo: userInfo)
}
func KeyboardState(showKeyboard:Bool,keyboardInfo info:NSDictionary){
// 调整动画
let rawAnimationCurveValue = (info[UIKeyboardAnimationCurveUserInfoKey] as! NSNumber).integerValue
let animationCurve = UIViewAnimationCurve (rawValue: rawAnimationCurveValue)
var animationOptions : UIViewAnimationOptions = UIViewAnimationOptions.BeginFromCurrentState
if (animationCurve == UIViewAnimationCurve.EaseIn) {
animationOptions = UIViewAnimationOptions.CurveEaseIn;
}
else if (animationCurve == UIViewAnimationCurve.EaseInOut) {
animationOptions = UIViewAnimationOptions.CurveEaseInOut;
}
else if (animationCurve == UIViewAnimationCurve.EaseOut) {
animationOptions = UIViewAnimationOptions.CurveEaseOut;
}
else if (animationCurve == UIViewAnimationCurve.Linear) {
animationOptions = UIViewAnimationOptions.CurveLinear;
}
var finalHeight : CGFloat = 0
var finalHeightTop : CGFloat = 0
if (showKeyboard) {
let keyboardFrameVal:NSValue = info.objectForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
let keyboardFrame : CGRect = keyboardFrameVal.CGRectValue()
let height : CGFloat = keyboardFrame.size.height-55;
//重新调整
finalHeight = height
finalHeightTop = -height
}
else{
finalHeight = 0
finalHeightTop = 0
}
self.layoutViewContentBottom.constant = finalHeight;
self.layoutViewContentTop.constant = finalHeightTop
self.view_content.setNeedsUpdateConstraints()
let animationDuration : NSTimeInterval = (info.objectForKey(UIKeyboardAnimationDurationUserInfoKey)?.doubleValue)!
UIView.animateWithDuration(animationDuration, delay: 0, options: animationOptions, animations: {
self.layoutIfNeeded()
}, completion:{(ss:Bool) in
})
}