免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2577 | 回复: 2
打印 上一主题 下一主题

打开键盘遮住View的问题解决方法-IOS开发 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-05 20:26 |只看该作者 |倒序浏览

打开键盘遮住View的问题解决方法-IOS开发













默认情况下打开键盘会遮住下面的view,带来一点点困扰,不过这不是什么大问题,我们使用点小小的手段就可以解决。

首先我们要知道键盘的高度是固定不变的,不过在IOS 5.0 以后键盘的高度貌似不是216了,不过不要紧,我们调整调整就是了:







iPhone

ipad



竖屏(portrait)

216

264



横屏(landScape)

140

352



我们采取的方法就是在textField(有可能是其他控件)接收到弹出键盘事件时把self.view整体上移216px了(我们就以iPhone竖屏为例了)。

有关View的frame,origin,size之类的知识点不懂的请参看我的另一篇博文:<<有关View的几个基础知识点>>

首先我们要设置textField的代理,我们就设为当前控制器了。

textField,delegate=self;

然后我们在当前控制器实现下面三个委托方法:
  1. 01.- (void)textFieldDidBeginEditing:(UITextField *)textField  

  2. 02.{ //当点触textField内部,开始编辑都会调用这个方法。textField将成为first responder   

  3. 03.       NSTimeInterval animationDuration = 0.30f;      

  4. 04.      CGRect frame = self.view.frame;  

  5. 05.      frame.origin.y -=216;  

  6. 06.      frame.size.height +=216;  

  7. 07.      self.view.frame = frame;  

  8. 08.       [UIView beginAnimations:@"ResizeView" context:nil];  

  9. 09.       [UIView setAnimationDuration:animationDuration];  

  10. 10.       self.view.frame = frame;                  

  11. 11.       [UIView commitAnimations];                  

  12. 12.}  
  13. 复制代码
复制代码
  1. 01.- (BOOL)textFieldShouldReturn:(UITextField *)textField   

  2. 02.{//当用户按下ruturn,把焦点从textField移开那么键盘就会消失了  

  3. 03.        NSTimeInterval animationDuration = 0.30f;  

  4. 04.        CGRect frame = self.view.frame;      

  5. 05.        frame.origin.y +=216;        

  6. 06.        frame.size. height -=216;     

  7. 07.        self.view.frame = frame;  

  8. 08.    //self.view移回原位置   

  9. 09.    [UIView beginAnimations:@"ResizeView" context:nil];  

  10. 10.    [UIView setAnimationDuration:animationDuration];  

  11. 11.        self.view.frame = frame;                  

  12. 12.        [UIView commitAnimations];  

  13. 13.        [textField resignFirstResponder];     

  14. 14.}         
  15. 复制代码
复制代码

论坛徽章:
0
2 [报告]
发表于 2012-03-05 20:27 |只看该作者
谢谢分享

论坛徽章:
0
3 [报告]
发表于 2012-03-05 21:10 |只看该作者
感谢分享,收藏一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP