IOS 键盘挡住输入框的问题解决办法
发布时间 - 2026-01-11 01:58:42 点击率:次IOS 键盘挡住输入框的问题解决办法

在iOS开发发现一个问题,有时输入框位于低出时,当编辑输入时,弹出的键盘会挡住输入框,令用户看不清楚实时的输入情况,使界面交互极度不友好。
经过查资料终于解决了这个问题。
解决思路:
1. 输入框监听UIControlEventEditingDidBegin事件,当用户开始输入时,将整个view上移。
2. 输入框监听UIControlEventEditingDidEnd事件,当用户结束输入时,将整个view下移,恢复到原位置。
输入框监听事件:
[textfield addTarget:self action:@selector(textFieldDidBeginEditing:) forControlEvents:UIControlEventEditingDidBegin]; [textfield addTarget:self action:@selector(textFieldDidEndEditing:) forControlEvents:UIControlEventEditingDidEnd];
响应事件:
-(void)textFieldDidBeginEditing:(UITextField *)textField{ //开始编辑时,整体上移
if (textField.tag==0) {
[self moveView:-20];
}
if (textField.tag==1)
{
[self moveView:-60];
}
}
-(void)textFieldDidEndEditing:(UITextField *)textField{ //结束编辑时,整体下移
if (textField.tag==0) {
[self moveView:20];
}
if (textField.tag==1)
{
[self moveView:60];
}
}
-(void)moveView:(float)move{
NSTimeInterval animationDuration = 0.30f;
CGRect frame = self.view.frame;
frame.origin.x +=move;//view的X轴上移
self.view.frame = frame;
[UIView beginAnimations:@"ResizeView" context:nil];
[UIView setAnimationDuration:animationDuration];
self.view.frame = frame;
[UIView commitAnimations];//设置调整界面的动画效果
}
有好几个输入框时,这里是用输入框的tag属性来判断用户点击了那个输入框,前提是你必须先要给tag赋值。这种判断方法对于tableView中嵌入许多的对话框特别有效。
还有一种方法就是已经知道了各个输入框的名字,利用名字去判断用户点击了那个输入框。
只有知道用户点击了那个输入框,才能确定该输入框要移动多少距离。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# IOS
# 键盘挡住输入框
# 键盘挡住输入框的解决办法
# h5 ios输入框和键盘的兼容性优化指南
# iOS项目开发键盘弹出遮挡输入框问题解决方案
# iOS实现输入框跟随键盘自动上移的实例代码
# ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
# iOS键盘弹出遮挡输入框的解决方法
# 输入框
# 这个问题
# 希望能
# 弹出
# 一个问题
# 要给
# 谢谢大家
# 看不
# 好几个
# 解决办法
# 必须先
# 对话框
# 知道了
# 解决了
# 不友好
# UIControlEventEditingDidEnd
# view
# ff
# UIControlEventEditingDidBegin
# textfield
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
,交易猫的商品怎么发布到网站上去?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
Laravel如何实现API资源集合?(Resource Collection教程)
微信小程序 scroll-view组件实现列表页实例代码
如何快速建站并高效导出源代码?
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何在阿里云高效完成企业建站全流程?
如何在腾讯云服务器上快速搭建个人网站?
如何用西部建站助手快速创建专业网站?
如何在景安服务器上快速搭建个人网站?
Laravel如何使用模型观察者?(Observer代码示例)
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
Firefox Developer Edition开发者版本入口
JS去除重复并统计数量的实现方法
Laravel如何生成URL和重定向?(路由助手函数)
Laravel如何保护应用免受CSRF攻击?(原理和示例)
Laravel如何实现用户密码重置功能?(完整流程代码)
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现本地化和多语言支持?(i18n教程)
详解Oracle修改字段类型方法总结
如何在阿里云域名上完成建站全流程?
如何用JavaScript实现文本编辑器_光标和选区怎么处理
如何安全更换建站之星模板并保留数据?
linux写shell需要注意的问题(必看)
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
微信小程序 闭包写法详细介绍
香港服务器部署网站为何提示未备案?
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
高端建站如何打造兼具美学与转化的品牌官网?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
,南京靠谱的征婚网站?
高性价比服务器租赁——企业级配置与24小时运维服务
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
什么是javascript作用域_全局和局部作用域有什么区别?
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
如何自定义建站之星模板颜色并下载新样式?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
iOS UIView常见属性方法小结
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
如何在IIS管理器中快速创建并配置网站?
如何快速生成橙子建站落地页链接?

