[英]Move UITextField above keyboard when using UIScrollView
我有一个UIScrollView
,其中包含一个UIView
容器,其中包含多个UITextField
。
我要执行以下操作:如果我选择了一个字段,并且该字段位于键盘下方,请在键盘上方上方加高文字字段,例如说20点。 如果它在键盘上方,请不要执行任何操作。
真正的问题是,当键盘处于活动状态时,最后一个字段根本不可见,因为我到达了UIView
的末尾(在我的情况下,它的高度为836点)。
我以为我可以提高整个视图的键盘高度,但这并不意味着当前字段将比键盘高20点。
有任何想法吗?
编辑:这不是重复的问题。 我已经有一个UIScrollView
并且如果在完成对前一个字段的编辑后按键盘上的“下一个”,如果该字段位于键盘下方,则希望活动文本字段在键盘上方精确地20点。
看一下KeyboardWillShow和KeyboardWillHide通知。
实施后,可以从通知对象参数中检索键盘的高度。
从那里,可以将UIView框架调整为所需的量,以使UITextFields位于键盘上方20个点。
希望这可以帮助。
尝试使用TPKeyboardAvoiding库。 您只需要设置scrollView的类。 它会处理所有事情。
希望对您有帮助。
像这样在您的viewWillAppear
为UIKeyboardWillShowNotification
添加观察者-
[[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.