吃不完兜着走 发表于 2012-12-19 22:17:43

关于ios键盘遮挡输入框

关于ios键盘遮挡输入框

<div id="cnblogs_post_body">今天我来讲一下键盘遮挡输入框时的解决方法。我做的一个界面是这样的
http://pic002.cnblogs.com/images/2012/417877/2012090322374933.png
我的输入框是在最下面,如果不做相关的操作的话,当编辑UITextField的时候,弹出键盘就会挡着输入框,那怎么解决这个问题呢,我们可以考虑让输入框随键盘一起向上移动,当关闭键盘时让输入框也一起向下移动回到原来的位置,这样就可以解决键盘挡着输入框的问题啦
下面看具体的代码实现:
在ios5.0之前呢键盘高度固定是216像素高,而ios5.0之后包括ios5.0键盘的高度再不是固定的,当由英文切换在中文输入时,键盘由原来的216变成了252
先说ios5.0之前的解决办法吧,我是通过UITextField的委托方法-(void)textFieldDidBeginEditing:(UITextField *)textField和另一个关掉键盘的方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField来实现的,点击键盘上的Return会关掉键盘的
<div class="cnblogs_code"> 1 - (void)textFieldDidBeginEditing:(UITextField *)textField 2 { 3   CGRect frame = textField.frame; 4   int offset = frame.origin.y +422 - (self.view.frame.size.height - 240);//键盘高度216 5   NSLog(@"offset is %d",offset); 6   NSTimeInterval animationDuration = 0.30f; 7   @"ResizeForKeyBoard" context:nil]; 8     ; 9   float width = self.view.frame.size.width;10   float height = self.view.frame.size.height;11   if(offset > 0)12     {13         CGRect rect = CGRectMake(0.0f, -offset,width,height);14         self.view.frame = rect;15     }16     ;17 }
页: [1]
查看完整版本: 关于ios键盘遮挡输入框