繁体   English   中英

使用UIScrollView时将UITextField移动到键盘上方

[英]Move UITextField above keyboard when using UIScrollView

我有一个UIScrollView ,其中包含一个UIView容器,其中包含多个UITextField

我要执行以下操作:如果我选择了一个字段,并且该字段位于键盘下方,请在键盘上方上方加高文字字段,例如说20点。 如果它在键盘上方,请不要执行任何操作。

真正的问题是,当键盘处于活动状态时,最后一个字段根本不可见,因为我到达了UIView的末尾(在我的情况下,它的高度为836点)。

我以为我可以提高整个视图的键盘高度,但这并不意味着当前字段将比键盘高20点。

有任何想法吗?

编辑:这不是重复的问题。 我已经有一个UIScrollView并且如果在完成对前一个字段的编辑后按键盘上的“下一个”,如果该字段位于键盘下方,则希望活动文本字段在键盘上方精确地20点。

看一下KeyboardWillShow和KeyboardWillHide通知。

实施后,可以从通知对象参数中检索键盘的高度。

从那里,可以将UIView框架调整为所需的量,以使UITextFields位于键盘上方20个点。

希望这可以帮助。

尝试使用TPKeyboardAvoiding库。 您只需要设置scrollView的类。 它会处理所有事情。

希望对您有帮助。

像这样在您的viewWillAppearUIKeyboardWillShowNotification添加观察者-

    [[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillShow:)
                                             name:UIKeyboardWillShowNotification
                                           object:nil];

然后在keyboardWillShow:方法中,按照以下方式将滚动视图滚动到UITextField的框架:

- (void) keyboardWillShow:(UIView *)aView {
[scrollview scrollRectToVisible:textView.frame animated:YES];
}

如果您的textField已经在屏幕上,则不会执行任何操作。 如果textField在键盘下方,这将自动将scrollView移至textView的框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM