iOS 防键盘遮挡
当我们在UITextField输入数据时经常弹出键盘遮挡界面,解决方法是:在弹出键盘时将整个UIVIew向上移动,在键盘消失时,UIVIew还原。
实例代码如下:
@interface ViewController ()<UITextFieldDelegate>@property(nonatomic,strong)UITextField* tf;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.tf = [[UITextField alloc]initWithFrame:CGRectMake(10, 600, 100, 20)];self.tf.delegate = self;self.tf.backgroundColor = [UIColor blackColor];[self.view addSubview:self.tf];}#pragma mark life Circle
-(void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];//后台切换到前台通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillEnterForeground)name:UIApplicationWillEnterForegroundNotification object:nil];[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(keyboardWillHide:)name:UIKeyboardWillHideNotificationobject:nil];[self.view endEditing:YES];}- (void)applicationWillEnterForeground{[self.view endEditing:YES];
}-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{[self.view endEditing:YES];
}#pragma mark UITextFieldDelegate
-(void)textFieldDidBeginEditing:(UITextField *)textField{//第一个cell不往上弹输入框的位置// if(indexPath.row!=0){[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];// }
}-(void)textFieldDidEndEditing:(UITextField *)textField{}
#pragma mark 键盘操作
- (void)keyboardWillChange:(NSNotification *)note
{NSDictionary *userInfo = note.userInfo;CGFloat duration = [userInfo[@"UIKeyboardAnimationDurationUserInfoKey"] doubleValue];CGRect keyFrame = [userInfo[@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];//这个64是我减去的navigationbar加上状态栏20的高度,可以看自己的实际情况决定是否减去;CGFloat moveY = keyFrame.origin.y -self.tf.frame.origin.y-self.tf.frame.size.height;NSLog(@"%f",moveY);[UIView animateWithDuration:duration animations:^{self.view.transform = CGAffineTransformMakeTranslation(0, moveY);}];}- (void)keyboardWillHide:(NSNotification *)nsnotification
{[[NSNotificationCenter defaultCenter]removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil];[UIView animateWithDuration:0.2 animations:^{self.view.transform = CGAffineTransformMakeTranslation(0, 0);}];
}@end
iOS 防键盘遮挡相关推荐
- 修复苹果iOS 原生键盘遮挡input框
最近在做一个仿微信的聊天界面,有一个固定在页面底部的input框,本来使用fixed定位在底部,在android手机上没有任何问题,但在iOS上当点击输入内容的时候会出现不同情况的原生键盘遮挡输入框的 ...
- iOS 解决键盘遮挡输入框问题,输入框随键盘弹起上移,切换输入法时动态调整 (Swift)
最近在项目中需要解决苹果系统输入法遮挡输入框的问题,预期结果为: 若键盘弹出后会遮挡输入框,则输入框随键盘弹起上移,输入法切换时输入框始终保持在距键盘上方 4pt 处; 若键盘弹出后不会遮挡输入框,但 ...
- iOS 处理键盘遮挡TextField、TextView问题
之前处理键盘遮挡问题都是在每一个控制器进行单独处理,这样做真的是非常的费事,今天在做项目的时候就想到自己封装一个,记录一下这个"跌宕起伏"的过程. 思路是这样的:计算文本编辑控件F ...
- ios 处理键盘遮挡问题
项目中经常会用到输入框,难免会碰到键盘遮挡其他控件的问题 那么如何解决 键盘遮挡的问题呢? 首先这是我的项目中的界面图 然后我们点击下面的详细地址或者输入验证码 我们发现键盘遮蔽住了下面的输入框 接下 ...
- flutter 键盘遮挡输入框问题_flutter插件推荐之 keyboard_avoider - 解决输入时的键盘遮挡问题...
插件介绍 这里推荐下防键盘遮挡控件:keyboard_avoider.虽然flutter中号称有机制可以防键盘遮挡,但是在实际使用的过程中的一些场合下还是会出现遮挡住键盘的bug,比如:app第一次安 ...
- iOS 键盘遮挡输入框万能解决方案(多个输入框)
效果图如下: 思路分析: 代码: 知识点: 问题: 效果图如下: 思路分析: 当我们有很多输入框时,有时候键盘弹出来会遮挡着输入框.我们需要获取输入框和键盘相对于最外层视图的位置来判断是否遮挡,如果遮 ...
- iOS键盘遮挡输入框,输入区域自动上移
在iOS开发过程当中,遇到关于键盘遮挡输入框的问题,经过网络参考与实践,总结如下: 登录窗口,上下放置两个UITextField,一个用户名,一个密码,放置的在屏幕下方1/3处,当点击用户名时,自动弹 ...
- Vue 自定义指令 解决IOS webview input 获取焦点被键盘遮挡
Vue 自定义指令 解决IOS webview input 获取焦点被键盘遮挡 创建自定义指令 在使用input的地方添加自定义指令,记录一下还有优化空间. vue 文件 <div id=&qu ...
- iOS解决表格中TextField,TextView编辑时,输入框被键盘遮挡的问题
方法1:在原来的 UIViewController 内部再添加一层 UITableViewController 代码如下 : // // ViewController.m // 键盘遮挡问题 // / ...
- ios自定义控件,使UIScrollView自己处理输入时键盘遮挡控件
在开发过程中,如一个页面有许多的输入控件,UITextField和UITextView.编码的时候就要考虑控件获得焦点后,键盘是否会把这个控件遮挡,就得操作UIScrollView的滚动条位置. 我开 ...
最新文章
- vs2017数据可视化建模_介绍数据可视化社区调查2017
- 2021年秋季学期“大数据能力提升项目”证书办理及领取通知
- [转载] Maven类包冲突终极三大解决技巧 mvn dependency:tree
- 在执行方法和Web资源中获取传递过来参数的值
- I've got so many hongbaos(should it be translated as red bags?)
- c语言将字母的acsaii,C语言上机实验 答案
- linux下python_linux下python安装
- ISA系列之三:ISA Server 2004防火墙的基本配置
- mpvue 小程序下拉刷新 三个点那种
- qq登录界面句柄_别小看QQ邮箱测试,80%的测试新手都不能写出完整的测试用例~...
- Sentinel底层LongAdder的计数实现
- Java校招笔试题-Java基础部分(五)
- 联发科固件现窃听漏洞,影响全球约三分之一的手机和物联网设备
- win11系统如何绕过tpm检测进行安装 Windows11绕过tpm安装的解决方法
- 使用TortoiseSVN下载source force的源代码
- Hibernate异常归总
- Atitit 数据库表文档生成解决方案
- html 页面加载中 请稍候,html 提示“数据在加载中,请稍后……”
- 总结oninput、onchange与onpropertychange事件的用法和区别
- 调用新浪微博开放平台接口
热门文章
- 如何提高Python编程能力?
- Windows10 快捷键
- android webview不支持input type=file 标签解决办法
- 1148. 简单密码破解
- phpcms搜索功能实现
- 网页压缩算法deflate揭秘
- 鸿蒙系统4月24日升级哪几款手机,大器晚成!鸿蒙系统或4月24号推送更新,你的机型在内吗?...
- mybatis中显示Type interface com.javacto.dao.UserMapper is not known to the MapperRegistry.
- 解决chrome 浏览器不能看视频
- 详解LDC架构-设计业务异地多活架构