1 视图精准位移,需要计算出输入框距离屏幕底部的距离,然后
计算出输入框需要上移的距离,就是整个视图需要上移的距离,
注意,我们可以自行设置一个适当的buffer,我这里是40,就是输入框距离
键盘有一个40的距离,避免紧挨着 导致体验不佳
- (void)keyboardWillShow:(NSNotification *)noti
{UpdateUserInfoView *userInforView = self.editCell.userInfoView;CGRect userInfoViewframe = [self.editCell convertRect:userInforView.frame toView:window];CGFloat bottomSpace = GetScreenHeight() - CGRectGetMaxY(userInfoViewframe);//设置一个bufferbottomSpace -= 40;CGRect keyboardRect = [noti.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];CGFloat boardHeight = keyboardRect.size.height;NSLog(@" keyboardWillShow editCellFrame%@ bottomSpace%f boardHeight%f", NSStringFromCGRect(userInfoViewframe), bottomSpace, boardHeight);CGFloat duration = [noti.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue];Weakify(self);[UIView animateWithDuration:duration animations:^{Strongify(self);self.backView.y -= (boardHeight - bottomSpace);}];[self.tableView addGestureRecognizer:self.endEditingTap];
}