在iOS 5中,键盘的高度是会变化的,比如切换到中文输入法时会在键盘上方多出一层候选字区域,如下图:
而在英文输入法下是没有文字候选区域的。
因此在用户输入场景下,布局的美观和可用性可能受到键盘高度变化的影响,因此需要动态适应键盘高度。
解决方案是监听键盘呼出事件的消息:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
针对键盘高度做出自适应:
- (void)keyboardWillShow:(NSNotification *)notification
{
static CGFloat normalKeyboardHeight = 216.0f;
NSDictionary *info = [notification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
CGFloat distanceToMove = kbSize.height - normalKeyboardHeight;
//自适应代码
}
最后,移除观察者。
分享到:
相关推荐
通过注册两个通知,可以监控键盘的弹出和消失,可以动态计算出键盘的高度。
自适应键盘高度,键盘脚手架
UITableviewCell高度自适应
iframe 自适应高度iframe 自适应高度iframe 自适应高度iframe 自适应高度iframe 自适应高度iframe 自适应高度iframe 自适应高度iframe 自适应高度
Vue自定义组件实现文本框根据文本内容自适应高度的效果,解决若输入文本量或显示文本量超过指定行数后,会出现垂直滚动条,但在IE环境下,该滚动条是隐藏的问题。
js控制 Iframe 框架自适应被嵌入页面高度
自适应UITextView和键盘位置对应的Demo,解决在UITextView输入时被键盘挡住的问题。
div+css高度自适应div+css高度自适应div+css高度自适应div+css高度自适应
自定义viewpager解决scrollview嵌套viewpager不显示和高度自适应
简单调用 导入文件 AppDelegate 实例化 ,在需要的类中实例化几句代码几个 重点在导入。
让iframe自适应内容页面的高度,兼容性好
2列左窄右宽高度自适应且未知高度底部平齐、型+头部+导航+尾部 CSS模板
iframe 跨域 自适应高度 模板 iframe 跨域 自适应高度 模板 iframe 跨域 自适应高度 模板
tableviewcell 输入内容实时刷新高度 自适应高度 有不足的地方请指教 分享一些互相学习
自适应炫酷仿真网页键盘js特效代码,键盘的效果,在网站中可能用的不是很多,这也是一个很好的学习例子,有助于学习,php中文网推荐下载!
jQuery自适应父容器宽度高度特效代码是一款通过计算文本的font-size来使文字适应它的父容器的宽度和高度。
仿小红书根据图片高度自适应viewpager高度轮播图
Duilib中的RichEdit自适应高度设置方法,里面详细的说明.
根据加载的html内容,自适应高度
纯JS实现的iframe自适应高度。兼容主流浏览器。