4

IQKeyboardManager用来简化我拥有的笔记视图控制器的键盘管理(包含一个大的UITextView)。但是,一旦键盘处于活动状态,屏幕就会不必要地向上移动。我希望屏幕在键盘处于活动状态之前保持原样(见下图),并且只有在用户的输入被键盘覆盖时才让 UITextView 滚动。

键盘激活前

当键盘处于活动状态时(视图向上滚动,覆盖“Notes”和导航栏)

我不希望导航栏或“注释”标签被遮盖,但我找不到IQKeyboardManager阻止将其UITextView一直推到顶部的设置。

当键盘处于活动状态时,如何防止视图向上移动?

编辑:我应该注意我不反对删除IQKeyboardManager,我只是认为它也会处理这个问题。我主要只需要一种方法,让我UITextView在用户输入键盘下方的内容时自动滚动。

更新:IQKeyboardManager我没有通过调整我的 contentInset 来解决我的问题,UITextView具体取决于键盘是否可见。

4

2 回答 2

1

你的导航栏是半透明的吗?这是 IQKeyboardManager 中的常见错误。尝试取消选中导航栏中的“半透明”属性。这不是完美的解决方案,但应该可以。

于 2017-04-02T18:57:13.667 回答
0

如果您希望屏幕保持原样,您可以使用IQKeyboardManager.sharedManager().disabledDistanceHandlingClasses属性禁用您的类的移动行为,例如:

/* Probably in your AppDelegate where you setup the keyboard */

IQKeyboardManager.sharedManager().enable = true
IQKeyboardManager.sharedManager().disabledDistanceHandlingClasses = [YourViewController.self]
于 2017-04-02T19:04:40.387 回答