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管理器中快速创建并配置网站?  如何快速生成橙子建站落地页链接?