版权声明:本文为 CSDN 博主 大锐哥(ID 为 prevention)原创文章。未经博主同意不得转载。 https://blog.csdn.net/prevention/article/details/32324617
iOS Dev (54) 键盘弹出后收起时View随之移动
- 作者:大锐哥
- 博客:http://prevention.iteye.com
-
加入监听
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(changeContentViewPosition:)
name:UIKeyboardWillShowNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(changeContentViewPosition:)
name:UIKeyboardWillHideNotification
object:nil];
移除监听
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
事件处理函数
- (void) changeContentViewPosition:(NSNotification *)notification{
NSDictionary *userInfo = [notification userInfo];
NSValue *value = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];
CGFloat keyBoardEndY = value.CGRectValue.origin.y;
NSNumber *duration = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];
NSNumber *curve = [userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey];
[UIView animateWithDuration:duration.doubleValue animations:^{
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationCurve:[curve intValue]];
self.view.center = CGPointMake(self.view.center.x, keyBoardEndY - STATUS_BAR_HEIGHT - self.view.bounds.size.height/2.0);
}];
}
Reference
- http://www.cnblogs.com/programmer-blog/p/3265110.html