Xcode/iOS5:当键盘出现时,向上移动 UIView

Xcode/iOS5: Move UIView up, when keyboard appears(Xcode/iOS5:当键盘出现时,向上移动 UIView)
本文介绍了Xcode/iOS5:当键盘出现时,向上移动 UIView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我想在显示键盘时向上移动视图.键盘(高度:216)应该用它的高度推高我的视野.这可以通过简单的代码实现吗?

I'd like to move up my view, when the keyboard is shown. The keyboard (height: 216) should push up my view with it's height. Is this possible with a simple code?

推荐答案

要移动视图,只需改变它的center.首先,将原始的保存在 CGPoint 属性中.

To move the view up, just change its center. First, keep the original one in a CGPoint property.

- (void)viewDidLoad 
{
    ...
    self.originalCenter = self.view.center;
    ...
}

然后,当键盘出现时根据需要进行更改:

Then, change as needed when keyboard shows up:

self.view.center = CGPointMake(self.originalCenter.x, /* new calculated y */);

最后,在键盘隐藏时恢复:

Finally, restore it when keyboard is hidden:

self.view.center = self.originalCenter;

随意添加动画糖

知道键盘何时出现的方法不止一种.

You have more than one way to know when the keyboard appears.

观察 UIKeyboardDidShowNotification 通知.

/* register notification in any of your initWithNibName:bundle:, viewDidLoad, awakeFromNib, etc. */
{
    ...
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];     
    ...
}

- (void)keyboardDidShow:(NSNotification *)note 
{
    /* move your views here */
}

UIKeyboardDidHideNotification 做相反的事情.

-或-

实现 UITextFieldDelegate

在编辑开始/结束时检测以移动视图.

Detect when editing begin/end to move views around.

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{
    /* keyboard is visible, move views */
}

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    /* resign first responder, hide keyboard, move views */
}

根据您可能需要跟踪用户正在编辑哪个字段的实际文本字段,添加一个计时器以避免过多地移动视图.

Depending on the actual text fields you may need to track in which field is the user editing, add a timer to avoid moving views too much.

这篇关于Xcode/iOS5:当键盘出现时,向上移动 UIView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

How to resize UITextView on iOS when a keyboard appears?(出现键盘时如何在iOS上调整UITextView的大小?)
How to reliably detect if an external keyboard is connected on iOS 9?(如何可靠地检测 iOS 9 上是否连接了外部键盘?)
How to mimic Keyboard animation on iOS 7 to add quot;Donequot; button to numeric keyboard?(如何在 iOS 7 上模拟键盘动画以添加“完成数字键盘的按钮?)
How do I dismiss the iOS keyboard?(如何关闭 iOS 键盘?)
Is possible to simulate touch event using an external keyboard on ios jailbroken?(是否可以在 ios 越狱后使用外部键盘模拟触摸事件?)
How do I retrieve keystrokes from a custom keyboard on an iOS app?(如何从 iOS 应用程序上的自定义键盘检索击键?)