IOS计算弹出键盘的高度

通过通知监听键盘的弹出与消失,并在输入框和键盘之间添加一个灰色的view


当键盘出现增加监听

//增加监听,当键盘出现或改变时收出消息

[[NSNotificationCenterdefaultCenter]addObserver:self

selector:@selector(keyboardWillShow:)

name:UIKeyboardWillShowNotification

object:nil];

当键退出时增加监听

//增加监听,当键退出时收出消息

[[NSNotificationCenterdefaultCenter]addObserver:self

selector:@selector(keyboardWillHide:)

name:UIKeyboardWillHideNotification

object:nil];

获取到键盘高度后添加一个View 并添加手势点击

//当键盘出现或改变时调用

- (void)keyboardWillShow:(NSNotification*)aNotification

{

//获取键盘的高度

NSDictionary*userInfo = [aNotificationuserInfo];

NSValue*aValue = [userInfoobjectForKey:UIKeyboardFrameEndUserInfoKey];

CGRectkeyboardRect = [aValueCGRectValue];

intheight = keyboardRect.size.height;

grayBack= [[UIViewalloc]initWithFrame:CGRectMake(0,64, [UIScreenmainScreen].bounds.size.width,[UIScreenmainScreen].bounds.size.height-64-height)];

grayBack.backgroundColor= [UIColorgrayColor];

grayBack.alpha=0.3;

[self.viewaddSubview:grayBack];

UITapGestureRecognizer*tapGestureRecognizer = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(keyboardHide:)];

//设置成NO表示当前控件响应后会传播到其他控件上,默认为YES。

tapGestureRecognizer.cancelsTouchesInView=NO;

//将触摸事件添加到当前view

[self.viewaddGestureRecognizer:tapGestureRecognizer];

}

//当键退出时调用

- (void)keyboardWillHide:(NSNotification*)aNotification{

[grayBackremoveFromSuperview];

}

-(void)keyboardHide:(UITapGestureRecognizer*)tap{

[_SearchTextFieldresignFirstResponder];

}

你可能感兴趣的:(IOS计算弹出键盘的高度)