是否有任何通用解决方案可以在屏幕上的键盘上方滚动 UITextView 和 UITextField

Posted

技术标签:

【中文标题】是否有任何通用解决方案可以在屏幕上的键盘上方滚动 UITextView 和 UITextField【英文标题】:Is there any universal solution for scrolling both UITextView and UITextField above the keyboard on screen 【发布时间】:2014-01-31 09:18:06 【问题描述】:

当键盘出现在屏幕上时,如何在 UITableView 或 UIViewController 中滚动 UITextField、UITextview。

【问题讨论】:

***.com/questions/1126726/… developer.apple.com/library/ios/documentation/StringsTextFonts/… 也看看这个 【参考方案1】:

我正在使用IQKeyboardManager。一般来说,就像将[IQKeyBoardManager installKeyboardManager]; 添加到viewDidLoad 方法一样简单。

【讨论】:

【参考方案2】:

只需处理textView/textField 委托方法并相应地调整您的视图框架。

您还可以在滚动视图中添加所有控件,然后在以下委托方法中向上/向下滚动

-(void)textFieldDidBeginEditing:(UITextField *)textField

    scrollView.frame = CGRectMake(scrollView.frame.origin.x,
                                  scrollView.frame.origin.y,
                                  scrollView.frame.size.width,
                                  scrollView.frame.size.height - 215 + dynamicHeight);


-(void)textFieldDidEndEditing:(UITextField *)textField

    scrollView.frame = CGRectMake(scrollView.frame.origin.x,
                                  scrollView.frame.origin.y,
                                  scrollView.frame.size.width,
                                  scrollView.frame.size.height + 215 - dynamicHeight);

您还可以设置通知以触发-keyboardWillShow-keyboardWillHide 方法。

在 github 上有这些 3rd 方库可用。 只需谷歌它,你会发现它们的负载。

https://github.com/michaeltyson/TPKeyboardAvoiding

【讨论】:

以上是关于是否有任何通用解决方案可以在屏幕上的键盘上方滚动 UITextView 和 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

在android中是否有任何方法可以获得设备虚拟键盘的高度

自动向上滚动文本字段,实现类中没有任何逻辑

在 Flutter 中显示在键盘上方的按钮

UIScrollView 仅在显示键盘时才需要

如何快速在 UITableView 中的键盘上方滚动 UITextView

解决遮罩层上方元素可以滚动禁止遮罩层下方滚动问题