我有一个UIScrollView
,其中包含一个包含多个UIView
的{{1}}容器。
我想要执行以下操作:如果我选择一个字段并且它位于键盘下方,请将提升文本字段提高到键盘上方20个点。如果它在键盘上方则不做任何事情。
真正的问题是,当键盘处于活动状态时,最后一个字段根本不可见,因为我到达UITextField
的末尾(在我的情况下,它是836点高)。
我认为我可以将整个视图提升到键盘的高度,但这并不意味着当前字段将完全位于键盘上方20个点。
有什么想法吗?
编辑:这不是一个重复的问题。我已经有一个UIView
,我希望活动文本字段完全位于键盘上方20个点如果在完成编辑前一个字段后按键盘上的“下一步”键盘下方的字段。
答案 0 :(得分:1)
查看KeyboardWillShow和KeyboardWillHide通知。
实现后,可以从通知对象参数中检索键盘的高度。
从那里,你的UIView框架可以调整所需的数量,以便UITextFields在键盘上方20点。
希望这有帮助。
答案 1 :(得分:0)
尝试使用TPKeyboardAvoiding库。你必须设置scrollView的类。它将处理所有事情。
希望它会帮助你。
答案 2 :(得分:0)
在viewWillAppear
中添加 [[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
的观察者,就像这样 -
keyboardWillShow:
然后在- (void) keyboardWillShow:(UIView *)aView {
[scrollview scrollRectToVisible:textView.frame animated:YES];
}
方法中,按以下方式将滚动视图滚动到UITextField的框架 -
Controller
如果您的textField已经在屏幕上,则不会执行任何操作。如果textField位于键盘下方,则会自动将scrollView移动到textView的框架。