iOS中获取键盘高度手动管理键盘
2016-09-28 16:27
435 查看
APP中有时候会出现键盘遮挡输入框的问题,这个时候就需要对键盘进行管理
可选择如下两种方式进行管理:
手动管理也可以通过UITextFieldDelegate,或者UITextViewDelegate等中的方法来管理,但是有很多要注意的地方,也比较麻烦
等等一系列方法都要设置frame,如果有TextView那协议方法又要增加几个,比较麻烦
可选择如下两种方式进行管理:
1.手动管理键盘 代码如下:
- (void)viewDidLoad { [super viewDidLoad]; //键盘处理 [self dealWithKeyboard]; } - (void)dealWithKeyboard{ //增加监听,当键盘出现时响应 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //增加监听,当键盘隐藏时响应 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; } //当键盘出现时调用 - (void)keyboardWillShow:(NSNotification *)aNotification { NSLog(@"键盘升起"); //获取键盘的高度 NSDictionary *userInfo = [aNotification userInfo]; NSValue *aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; CGRect keyboardRect = [aValue CGRectValue]; //height就是获取的键盘高度 int height = keyboardRect.size.height; //这里我将tableview的frame的高度设置为导航栏与键盘之间的空隙,这样当用户点击输入框时会获取焦点 self.tableView.frame = CGRectMake(0, 0, kScreenW, kScreenH-64-50-height); } //当键盘隐藏时调用 - (void)keyboardWillHide:(NSNotification *)aNotification{ NSLog(@"键盘隐藏"); //退出键盘时将tableview的高度恢复正常 self.tableView.frame = CGRectMake(0, 0, kScreenW, kScreenH-64-50); }
手动管理也可以通过UITextFieldDelegate,或者UITextViewDelegate等中的方法来管理,但是有很多要注意的地方,也比较麻烦
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; - (BOOL)textFieldShouldEndEditing:(UITextField *)textField; - (BOOL)textFieldShouldReturn:(UITextField *)textField ;
等等一系列方法都要设置frame,如果有TextView那协议方法又要增加几个,比较麻烦
2.使用第三方来管理键盘 常用的比如IQKeyboardManager,YYKeyboardManager等,导入就能使用,比较方便,但是第三方有时候也会遇到一些问题, IQKeyboardManager里如果输入框的底层视图不能滑动的话,键盘弹起会将导航栏一并升起,这些问题都要注意。
相关文章推荐
- iOS 获取软键盘高度
- iOS键盘中英文切换键盘高度获取通知方法
- iOS 键盘显示或消失的监听,获取键盘高度
- [iOS]如何动态获取键盘的高度
- IOS 开发如何获取键盘高度
- iOS获取键盘的高度
- IOS下获取当前用户设备中的键盘的高度
- iOS获取键盘的高度(在键盘出现,改变和消失时通知改变)
- iOS第三方键盘高度获取方法
- ios开发 动态获取中英文键盘高度
- iOS获取键盘的高度
- iOS获取键盘高度
- ios --- 动态获取键盘高度
- ios --- 动态获取键盘高度
- iOS成长之路-获取系统键盘的高度
- ios 获取键盘高度
- 键盘弹起与隐藏时高度的获取及动画 适配所有iOS系统
- ios开发 监听键盘frame变化事件获取键盘高度( ios8&ios7 横竖屏旋转时需要注意的问题)
- IOS 获取键盘的高度
- ios --- 动态获取键盘高度