iOS解决键盘阻挡输入框
解决思路:有时用户编辑输入框时,键盘会遮挡输入框,这时候只要将视图整体上移键盘的高度即可,编辑完成后再将视图下移键盘的高度恢复正常显示。
【方法1】
实现UITextField代理UITextFieldDelegat的两个方法textFieldShouldBeginEditing和textFieldShouldEndEditing,分别在开始输入和结束输入时,将UIView上移或下移恢复。
代码:
.h文件
@interface ViewController : UIViewController<UITextFieldDelegate>@property (weak, nonatomic) IBOutlet UITextView *textField;@end
.m文件
设置UITextView实例的代理:
_textField.delegate=self
实现代理方法:
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{NSTimeInterval animationDuration=0.30f;[UIView beginAnimations:@"ResizeForKeyboard" context:nil];[UIView setAnimationDuration:animationDuration];float width = self.view.frame.size.width;float height = self.view.frame.size.height;//上移n个单位,按实际情况设置CGRect rect=CGRectMake(0.0f,-130,width,height);self.view.frame=rect;[UIView commitAnimations];return YES;
}- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{NSTimeInterval animationDuration=0.30f;[UIView beginAnimations:@"ResizeForKeyboard" context:nil];[UIView setAnimationDuration:animationDuration];float width = self.view.frame.size.width;float height = self.view.frame.size.height;//上移n个单位,按实际情况设置self.view.frame = CGRectMake(0.0f, 130, width, height);[UIView commitAnimations];return YES;
}
【方法2】(推荐)
注册键盘弹出和关闭的系统通知,对视图进行整体移动
1、在viewDidLoad中注册通知:
- (void)viewDidLoad {[super viewDidLoad];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
2、实现上面两个通知对应的两个方法
-(void)keyboardWillShow:(NSNotification*)notification
{NSDictionary *info = [notification userInfo];//获取键盘的size值CGRect _keyBoard = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];//动画时间NSTimeInterval animationDuration =[[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];//上移n个单位,按实际情况设置[UIView animateWithDuration:animationDuration animations:^{CGRect rect = CGRectMake(0.0f,-_keyBoard.size.height,self.view.frame.size.width,self.view.frame.size.height);self.view.frame=rect;}];}- (void)keyboardWillHide:(NSNotification *)notification
{//动画时间NSDictionary *info = [notification userInfo];NSTimeInterval animationDuration =[[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];//还原输入view位置[UIView animateWithDuration:animationDuration animations:^{self.view.frame = CGRectMake(0, 0,self.view.frame.size.width,self.view.frame.size.height);}];
}
3、在dealloc中注销通知监听
- (void)dealloc{[[NSNotificationCenter defaultCenter] removeObserver:self];
}
iOS解决键盘阻挡输入框相关推荐
- iOS 解决键盘遮挡输入框问题,输入框随键盘弹起上移,切换输入法时动态调整 (Swift)
最近在项目中需要解决苹果系统输入法遮挡输入框的问题,预期结果为: 若键盘弹出后会遮挡输入框,则输入框随键盘弹起上移,输入法切换时输入框始终保持在距键盘上方 4pt 处; 若键盘弹出后不会遮挡输入框,但 ...
- Keyboard 软键盘阻挡输入框爬坑指南
导读: 日常开发中我们经常会用到EditText输入框,但有时我们的输入框会出现被软键盘界面阻挡,那么我们就会想到设置android:windowSoftInputMode属性 但是,当我们用的正爽的 ...
- 仿QQ空间登录,解决键盘挡住输入框的问题
我们在开发Android应用中,登录和注册界面是少不了的,往往在做登录注册的时候如果给界面加一个LOGO,就有可能把用户名和密码框放在手机屏幕的中间或底部,这样当软键盘弹出的时候,就有可能挡住输入框( ...
- UITextField 文本字段控件 -- IOS (解决键盘遮住View及密文設定的问题)(实例)
进入本文之前建议你认真读一读我的另一篇博文:UIControl IOS控件编程 这样会起到事半功倍效果. 为什么要看另一篇关于UIControl的文章呢?因为UITextField继承自UIContr ...
- flutter - 使用 SingleChildScrollView() 解决键盘遮挡输入框的问题
写好了,感觉可好 点击输入框,输入内容时发现如下,键盘遮挡了输入框 使用 SingleChildScrollView 解决遮挡问题, 就是让它滚动起来 直接使用 SingleChildScrollVi ...
- ios 表情符号 键盘_iOS输入框过滤表情,处理自带键盘无法输入
本片分两部分 1.使用正则表达式过滤表情 2.处理苹果自带键盘无法输入汉字问题 先记录下,后面完善: override func viewDidAppear(_ animated: Bool) { s ...
- React-native键盘遮挡输入框问题的解决
2016年10月25日更新: 现在有一个更准确一点的做法是用一个View包裹住TextInput,然后通过该View的onLayout方法获取该输入框的y轴位置,再减去一个适当的高度去处理scroll ...
- 解决h5底部输入框在ios被软键盘顶飞 软键盘消失还下不来
好吧,其实不是顶飞,准确点说应该是h5页面fiexed定位在底部的输入框在ios软键盘弹起的时候软键盘跟输入框有时会有一段悬空的距离,无法紧贴.在安卓机子上则没有这样的情况. 解决方法是通过h5的sc ...
- iOS键盘遮挡输入框,输入区域自动上移
在iOS开发过程当中,遇到关于键盘遮挡输入框的问题,经过网络参考与实践,总结如下: 登录窗口,上下放置两个UITextField,一个用户名,一个密码,放置的在屏幕下方1/3处,当点击用户名时,自动弹 ...
最新文章
- 2022-2028年中国油气勘探工程产业研究及前瞻分析报告
- 干货 | 走进Node.js之启动过程剖析
- JavaWeb基础—数据库连接池DBCP、C3P0
- 基于Elasticsearch实现搜索建议
- 剑指Offer #07 斐波那契数列(四种解法)| 图文详解
- 初探swift语言的学习笔记二(可选类型?和隐式可选类型!)
- 半正定矩阵的判定方法_线性代数30——正定矩阵和最小值
- windows下jenkins slave 搭建
- 左边任务栏_Windows10 系统桌面底部的任务栏在侧边了怎么还原
- STM32一体化步进电机驱动器控制步进电机
- C语言经典题目50题
- 第一道web类CTF题——一起来撸猫
- PS薄纱飘带字体制作
- Motion-based counter-measures to photo attacks in face recognition
- LSC LensShading Correct
- C-kermit安装方法
- 【旧资料整理】8086汇编 鼠标操作
- JARVISOJ RE
- openmeetings 安装ssl
- switch c语言格式,switch语句格式是什么?