iOS5的键盘高度问题处理
2012-07-02 20:36
330 查看
如果你将你的设备升级到iOS5,就你会发现,在新系统下,中文输入法的选字界面不再跟随光标了,而是固定贴在键盘的上方。这种设计上的改变造成实际上输入的界面相比原来的系统,高度增加了,由原来的216象素,变成252象素。并且,由于中文输入法的多样性(手写,拼音,笔划),键盘高度并不是固定升高成252象素,例如手写输入法的选字界面在右侧,所以高度仍然为216象素。
所以,如果你的app在键盘的正上方有内容显示的话,就需要根据键盘高度,调整显示的内容。
例如下图,有道笔记的“附件”按钮和“隐藏键盘”按钮就浮动在键盘的正上方,如果不做调整,就会被多出来一行的选字界面挡住。
那么具体怎么解决呢?可以用 UIKeyboardWillShowNotification通知来获得当键盘改变时,该键盘的高度和位置。然后调整自己相应的UI元素位置即可,示例代码如下:
-(void)viewDidLoad{
[superviewDidLoad];
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];
}
-(void)viewDidUnload{
[superviewDidUnload];
[[NSNotificationCenterdefaultCenter]removeObserver:self];
}
-(void)keyboardWillShow:(NSNotification*)notification{
NSDictionary*info=[notificationuserInfo];
CGSizekbSize=[[infoobjectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;
NSLog(@"keyboard changed, keyboard width = %f, height = %f",
kbSize.width,kbSize.height);
//在这里调整UI位置
}
所以,如果你的app在键盘的正上方有内容显示的话,就需要根据键盘高度,调整显示的内容。
例如下图,有道笔记的“附件”按钮和“隐藏键盘”按钮就浮动在键盘的正上方,如果不做调整,就会被多出来一行的选字界面挡住。
那么具体怎么解决呢?可以用 UIKeyboardWillShowNotification通知来获得当键盘改变时,该键盘的高度和位置。然后调整自己相应的UI元素位置即可,示例代码如下:
-(void)viewDidLoad{
[superviewDidLoad];
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotificationobject:nil];
}
-(void)viewDidUnload{
[superviewDidUnload];
[[NSNotificationCenterdefaultCenter]removeObserver:self];
}
-(void)keyboardWillShow:(NSNotification*)notification{
NSDictionary*info=[notificationuserInfo];
CGSizekbSize=[[infoobjectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;
NSLog(@"keyboard changed, keyboard width = %f, height = %f",
kbSize.width,kbSize.height);
//在这里调整UI位置
}
相关文章推荐
- iOS5的键盘高度问题处理
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- 如何处理 键盘弹起中文英文高度问题
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)(转载)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- ios5 中文键盘高度变高覆盖现有ui问题的解决方案(获取键盘高度的方法)
- EditText自动弹出键盘问题处理
- 关于swift3.0关于弹出键盘高度的问题
- 使用第三方IQKeyboardManager处理键盘问题
- 如何获取搜狗输入法键盘的高度~搜狗输入法上边有个候选栏问题
- iOS 处理键盘遮挡TextField、TextView问题