IOS Dev (54) When the keyboard pops up, the view moves with it
- Tai Rui elder brother
- Blog: http://prevention.iteye.com
-
Add Listener
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeContentViewPosition:) name:UIKeyboardWillShowNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeContentViewPosition:) name:UIKeyboardWillHideNotification object:nil];
Remove Listener
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
Event handler function
- (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