#pragma mark - 键盘边框大小变化
- (void)keyboardChangeFrame:(NSNotification *)notification
{
NSLog(@"%@", notification.userInfo);
// 根据跟踪发现,使用userInfo的UIKeyboardFrameEndUserInfoKey数据可以判断键盘的大小和目标位置
// 1. 获取键盘的目标区域
NSDictionary *info = notification.userInfo;
CGRect rect = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat duration = [info[UIKeyboardAnimationDurationUserInfoKey] floatValue];
// 2. 根据rect的orgion.y可以判断键盘是开启还是关闭
if (rect.origin.y == [UIScreen mainScreen].bounds.size.height) {
// 关闭键盘
NSTimeInterval animationDuration=0.30f;
[UIView beginAnimations:@"ResizeForKeyboard" context:nil];
[UIView setAnimationDuration:animationDuration];
float width = self.view.frame.size.width;
float height = self.view.frame.size.height;
//上移n个单位,按实际情况设置
CGRect rect=CGRectMake(0.0f,0,width,height);
self.view.frame=rect;
[UIView commitAnimations];
} else {
// 打开键盘或者中英文切换
// 根据目标位置的高度判断键盘类型
if (rect.size.height == 216) {
// 英文键盘
// [self.view removeConstraint:];
// scrollorviewBottomDistance
// _ScrollView.frame=self.view.frame-216;
//
// self.scrollorviewBottomDistance.constant=216-44;
// [self.view layoutIfNeeded];
//
// self.view.frame=CGRectMake(0, 0, 0, 0);
// // 中文键盘
// self.scrollorviewBottomDistance.constant=SCREEN_HEIGHT-216;
// [self.view layoutIfNeeded];
//
} else if (rect.size.height == 253) {
// self.view.frame=CGRectMake(0, 0, 0, 0);
// // 中文键盘
// self.view.constant=253-44;
// [self.view layoutIfNeeded];
}
}
// 用自动布局系统实现动画,调整位置
[UIView animateWithDuration:duration animations:^{
} completion:^(BOOL finished) {
}];
}