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];

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容