在ios中避免键盘遮挡了输入框的处理
来源:互联网 发布:大连交通大学软件宿舍 编辑:程序博客网 时间:2024/05/29 15:06
在iPhone的短信对话界面中,当点击下方的输入框时,整个信息列表界面的大小会自动发生改变并保证界面内容不被键盘所覆盖.要实现这种效果需要在键盘将要弹出时使用代码动态的改变整个View的大小.有两种方法,一种,实现输入框的协议,并设置委托在文本开始,结束编辑进行操作。改变当前视图的y值,另一种,使用通知,检测键盘显示,进行操作。这里讲,通知的实现。
首先在viewDidLoad中注册键盘弹出事件监听器:
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotificationobject:nil];
在键盘弹出时,获得键盘高度,动态改变View大小:
-(void) keyboardWillShow:(NSNotification *)note
{
NSLog(@"keyboardWillShow %d",keyboardIsShowing);
CGRect keyboardBounds;
[[note.userInfo valueForKey:UIKeyboardBoundsUserInfoKey] getValue: &keyboardBounds];
keyboardHeight = keyboardBounds.size.height;
NSLog(@"keyboardHeight = %d",keyboardHeight);
if (keyboardIsShowing == NO)
{
keyboardIsShowing = YES;
NSLog(@"change %d %f",keyboardIsShowing,self.view.frame.size.height);
CGRect frame = self.view.frame;
frame.size.height -= keyboardHeight;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.3f];
self.view.frame = frame;
[UIView commitAnimations];
}
}
需要注意的是在界面退出时务必removeObserver.
- 在ios中避免键盘遮挡了输入框的处理
- 在textView中输入时避免键盘的遮挡
- 在textView中输入时避免键盘的遮挡
- 在textView中输入时避免键盘的遮挡
- 在textView中输入时避免键盘的遮挡
- iOS输入框怎样避免键盘的遮挡
- iOS输入框自适应键盘高度,避免遮挡
- iOS——获得键盘的高度 NSNotificationCenter 避免遮挡输入框
- 避免键盘弹出时遮挡输入框
- ## iOS 中用了autolayout遮挡键盘的处理 ##
- Swift 解决IOS开发中TableView中编辑UITextField时键盘遮挡输入框的情况
- 页面多个textField,键盘遮挡输入框的处理
- mono touch中处理视图过长,输入框被键盘遮挡的问题
- iOS解决键盘遮挡输入框的问题
- [ios]TableView的Cell中有Textfield时放置键盘遮挡输入框
- IOS 键盘遮挡处理
- iOS 键盘遮挡处理
- 关于ios键盘遮挡输入框
- leetcode代码分类汇总之-排序
- WPF初学者之 XAML的资源(Resources)结构
- Objective-C单例模式例子
- 解决win7下安装Oracle8.17乱码问题
- 关于sphinx+PHP在高并发时响应性能低下的解决办法
- 在ios中避免键盘遮挡了输入框的处理
- 推荐OpenResty-各个模块作用
- 十大滤波算法程序大全
- windows.h与winsock2.h的引用顺序
- 如何优化数据库查询
- windows 内存映射文件
- eclipse批量更改文件编码
- 淘宝技术这十年——光棍节的狂欢
- 将Qt 动态链接生成的exe及依赖dll打包方法