1.
- (void)dealloc{ ???[[NSNotificationCenter defaultCenter] removeObserver:self];}- (void)registerNotification { ???[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil]; ???[[NSNotificationCenter defaultCenter] addObserver:self ?selector:@selector(hideKeyboard:) name:UIKeyboardWillHideNotification object:nil];}#pragma mark - keyboard- (void)showKeyboard:(NSNotification *)noti { ???NSDictionary *info=[noti userInfo]; ???????NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; ???UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << 16; ???????CGRect keyboardRect = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue]; ???CGFloat keyboardHeight = MIN(CGRectGetWidth(keyboardRect), CGRectGetHeight(keyboardRect)); ???????[UIView animateWithDuration:duration delay:0 options:options animations:^{ ???????CGFloat compareH = self.tableView.contentSize.height -(self.view.height - 45 - 64 - keyboardHeight); ???????if (compareH > ?0) { ???????????if (compareH < keyboardHeight) { ???????????????self.tableView.transform = CGAffineTransformMakeTranslation(0, -compareH); ???????????} else { ???????????????self.tableView.transform = CGAffineTransformMakeTranslation(0, -keyboardHeight); ???????????} ???????} ???????????????self.bottomView.transform = CGAffineTransformMakeTranslation(0, -keyboardHeight); ???????????} completion:nil];}- (void)hideKeyboard:(NSNotification *)noti { ???????NSDictionary *info=[noti userInfo]; ???????NSTimeInterval duration = [info[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; ???UIViewAnimationOptions options = [info[UIKeyboardAnimationCurveUserInfoKey] unsignedIntegerValue] << 16; ???????[UIView animateWithDuration:duration delay:0 options:options animations:^{ ???????????????self.tableView.transform = CGAffineTransformIdentity; ???????self.bottomView.transform = CGAffineTransformIdentity; ???????????} completion:nil]; ???}
第11月第31天 keyboardwillshow CGAffineTransformMakeTranslation
原文地址:http://www.cnblogs.com/javastart/p/7457470.html