如何响应iOS7中键盘的出现和消失来移动UITextField?

用户名

如何在屏幕上移动UITextField,使其不被iOS7的键盘覆盖,然后在关闭键盘后将其返回到UIView内的原始位置?

安布·卡尔提克(Anbu.Karthik)

在您的Viewcontroller.h中

@interface ViewController : UIViewController<UITextFieldDelegate>
{
 CGFloat animatedDistance;

 }

在ViewController.M中//将下面的4行粘贴到类的任何位置(方法之外)

static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3;
static const CGFloat MINIMUM_SCROLL_FRACTION = 0.2;
static const CGFloat MAXIMUM_SCROLL_FRACTION = 0.8;
static const CGFloat PORTRAIT_KEYBOARD_HEIGHT = 216;

在委托方法是

-(void)textFieldDidBeginEditing:(UITextField *)textField
{
  CGRect textFieldRect =
[self.view.window convertRect:textField.bounds fromView:textField];
CGRect viewRect =
[self.view.window convertRect:self.view.bounds fromView:self.view];

CGFloat midline = textFieldRect.origin.y + 0.5 * textFieldRect.size.height;
CGFloat numerator =
midline - viewRect.origin.y
- MINIMUM_SCROLL_FRACTION * viewRect.size.height;
CGFloat denominator =
(MAXIMUM_SCROLL_FRACTION - MINIMUM_SCROLL_FRACTION)
* viewRect.size.height;
CGFloat heightFraction = numerator / denominator;
if (heightFraction < 0.0)
{
    heightFraction = 0.0;
}
else if (heightFraction > 1.0)
{
    heightFraction = 1.0;
}


animatedDistance = floor(PORTRAIT_KEYBOARD_HEIGHT * heightFraction);

CGRect viewFrame = self.view.frame;
viewFrame.origin.y -= animatedDistance;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION];

[self.view setFrame:viewFrame];

[UIView commitAnimations];
}

- (void)textFieldDidEndEditing:(UITextField *)textField

{
 CGRect viewFrame = self.view.frame;
viewFrame.origin.y += animatedDistance;

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:KEYBOARD_ANIMATION_DURATION];

[self.view setFrame:viewFrame];

[UIView commitAnimations];

 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS7 UItextfield文字从背景中消失

来自分类Dev

iOS7 UItextfield文本从背景消失

来自分类Dev

iOS7模拟器中的UITextField不会从Mac键盘获取任何输入

来自分类Dev

在ios7移动浏览器中消失的位置固定标头

来自分类Dev

在iOS7中点击UITextField

来自分类Dev

iOS7是否需要resignFirstResponder来隐藏键盘?

来自分类Dev

关闭键盘-iOS 7中的多个UITextField

来自分类Dev

当键盘出现在iOS7中时调整UITextView的大小

来自分类Dev

当键盘出现在iOS7中时调整UITextView的大小

来自分类Dev

键盘出现在Swift中时UITextField向上移动

来自分类Dev

如何在iOS7中的UITextfield中禁用复制/粘贴选项

来自分类Dev

如何在iOS7中的UITextfield中禁用复制/粘贴选项

来自分类Dev

Xcode 5:在ios6和ios7之间切换视图时,故事板中的图像消失

来自分类Dev

iOS7键盘快捷键如何实现?

来自分类Dev

显示键盘后,表单不在iOS7中居中

来自分类Dev

iOS7 UIImagePickerController取消按钮消失

来自分类Dev

iOS7 UIImagePickerController取消按钮消失

来自分类Dev

如何使iOS7中的UITableView透明?

来自分类Dev

UITextField键盘不消失

来自分类Dev

如何在iOS中以编程方式使键盘消失

来自分类Dev

使用键盘html时,webview焦点出现ios7问题

来自分类Dev

使用键盘html时,webview焦点出现ios7问题

来自分类Dev

如何调整页面标题以在iOS6和iOS7中正常工作?

来自分类Dev

如何在Xamarin中向iOS8兼容版本添加和支持iOS7

来自分类Dev

有键盘时如何使UITextField向上移动?

来自分类Dev

已为monodevelop中的ios7更新,但出现错误

来自分类Dev

在iOS中单击UITextField时如何禁用键盘?

来自分类Dev

iOS:当响应者辞职时,文本将从子类化的UITextfield中消失

来自分类常见问题

无法在iOS7上将UITextField添加到UIAlertView ...在iOS 6中工作

Related 相关文章

  1. 1

    iOS7 UItextfield文字从背景中消失

  2. 2

    iOS7 UItextfield文本从背景消失

  3. 3

    iOS7模拟器中的UITextField不会从Mac键盘获取任何输入

  4. 4

    在ios7移动浏览器中消失的位置固定标头

  5. 5

    在iOS7中点击UITextField

  6. 6

    iOS7是否需要resignFirstResponder来隐藏键盘?

  7. 7

    关闭键盘-iOS 7中的多个UITextField

  8. 8

    当键盘出现在iOS7中时调整UITextView的大小

  9. 9

    当键盘出现在iOS7中时调整UITextView的大小

  10. 10

    键盘出现在Swift中时UITextField向上移动

  11. 11

    如何在iOS7中的UITextfield中禁用复制/粘贴选项

  12. 12

    如何在iOS7中的UITextfield中禁用复制/粘贴选项

  13. 13

    Xcode 5:在ios6和ios7之间切换视图时,故事板中的图像消失

  14. 14

    iOS7键盘快捷键如何实现?

  15. 15

    显示键盘后,表单不在iOS7中居中

  16. 16

    iOS7 UIImagePickerController取消按钮消失

  17. 17

    iOS7 UIImagePickerController取消按钮消失

  18. 18

    如何使iOS7中的UITableView透明?

  19. 19

    UITextField键盘不消失

  20. 20

    如何在iOS中以编程方式使键盘消失

  21. 21

    使用键盘html时,webview焦点出现ios7问题

  22. 22

    使用键盘html时,webview焦点出现ios7问题

  23. 23

    如何调整页面标题以在iOS6和iOS7中正常工作?

  24. 24

    如何在Xamarin中向iOS8兼容版本添加和支持iOS7

  25. 25

    有键盘时如何使UITextField向上移动?

  26. 26

    已为monodevelop中的ios7更新,但出现错误

  27. 27

    在iOS中单击UITextField时如何禁用键盘?

  28. 28

    iOS:当响应者辞职时,文本将从子类化的UITextfield中消失

  29. 29

    无法在iOS7上将UITextField添加到UIAlertView ...在iOS 6中工作

热门标签

归档