iOS 键盘遮挡问题
来源:互联网 发布:淘宝发货地址自动填写 编辑:程序博客网 时间:2024/05/17 04:01
原理:
监听每个uitextfiled,动态计算view的位置,在输入完成之后,将view重新设置到原始位置。
步骤:
1.添加监听事件
监听事件可以使用uitextfiled的delegate,或者使用NSNotificationCenter。
/* 点击空白区域收起键盘 */ self.userInteractionEnabled = YES; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fingerTapped:)]; [self addGestureRecognizer:singleTap]; // 监听键盘的即将显示事件. UIKeyboardWillShowNotification [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; // 监听键盘即将消失的事件. UIKeyboardWillHideNotification [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
2.监听每个textefiled,动态计算view的位置
///键盘显示事件- (void) keyboardWillShow:(NSNotification *)notification { //获取键盘高度,在不同设备上,以及中英文下是不同的 CGFloat kbHeight = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size.height; //计算出键盘顶端到inputTextView panel底端的距离(加上自定义的缓冲距离INTERVAL_KEYBOARD) CGFloat offset=0; if (textfiledtag==3) { offset= (textdes.frame.origin.y+textdes.frame.size.height+60) - (self.frame.size.height - kbHeight-150); } if (textfiledtag==4) { offset= (textdbz.frame.origin.y+textdbz.frame.size.height+60) - (self.frame.size.height - kbHeight-190); } // 取得键盘的动画时间,这样可以在视图上移的时候更连贯 double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //将视图上移计算好的偏移 if(offset > 0) { [UIView animateWithDuration:duration animations:^{ self.frame = CGRectMake(0.0f, -offset, self.frame.size.width, self.frame.size.height); }]; }}///键盘消失事件- (void) keyboardWillHide:(NSNotification *)notify { // 键盘动画时间 double duration = [[notify.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; //视图下沉恢复原状 [UIView animateWithDuration:duration animations:^{ self.frame = CGRectMake(0, 80, self.frame.size.width, self.frame.size.height); }];}
0 0
- iOS 键盘遮挡问题
- iOS 键盘遮挡问题
- ios键盘遮挡问题
- ios键盘遮挡UITextField问题
- iOS解决键盘遮挡问题
- iOS 解决键盘遮挡问题
- iOS解决键盘遮挡问题
- ios 处理键盘遮挡问题
- IOS开发 textField 键盘遮挡问题
- iOS解决键盘遮挡TextFiled的问题
- iOS 键盘遮挡问题(详细)
- iOS-键盘弹出遮挡问题
- iOS UITextField,UITextView键盘遮挡问题
- iOS开发 textField 键盘遮挡问题
- iOS键盘弹出遮挡输入框问题
- ios解决webview键盘遮挡问题
- iOS解决键盘遮挡输入框问题
- IOS 键盘遮挡处理
- 编程练习题
- 使用OpenSessionInView解决懒加载需要注意的问题
- 搭建高可用的MongoDB集群
- python 列举所有串口模块
- Strom学习随笔
- iOS 键盘遮挡问题
- extjs-grid数据加载
- Block 理解 总结 使用demo 通俗易懂
- TextView使用SpannableString设置复合文本
- Python中的tile函数
- convex hull 算法之一:Graham Scan凸包算法
- 初学编程者,从一开始就值得坚持的习惯
- ViewState的用法
- Android ComponentName的用法