3

我有一个基于标签栏控制器的应用程序,我正在使用IQKeyboardManager它来处理类似表单的东西。

IQKeyboardManager 中的空白区域截图

第 1 步:标签栏控制器,底部为 a UITextView,位于 aUIView中。检查图像 1。

步骤2:当我点击时UITextView,键盘出现,但由于标签栏出现空白。我试图删除IQKeyboardManager,但它仍然发生,所以确认这不是IQKeyboardManager. 由于标签栏控制器,这是一个问题。

如何删除该间距?

4

1 回答 1

4

你是对的。空白是由标签栏引起的。覆盖视图中的 y 位置,当您收到键盘时添加额外的空间,而不是在您的 viewDidLoad 或其他任何地方,因为它将隐藏在选项卡栏后面。然后,您需要在用户使用完键盘后通过删除该附加值将其恢复正常。例如。

// Declaration
var tabBarHeight : CGFloat = 0.0
// viewDidLoad
tabBarHeight = tabBarController?.tabBar.frame.size.height
// When the user begins using the keyboard move the view containing the textfield
yourView.frame.origin.y = (tabBarController?.tabBar.frame.origin.y + tabBarHeight )
// When the user finishes using the keyboard
yourView.frame.origin.y = (tabBarController?.tabBar.frame.origin.y - tabBarHeight )

如果你有限制,你需要调整它们。这里的好答案:

https://stackoverflow.com/a/27870216/4008175

此答案将帮助您收听键盘何时被激活和停用:

https://stackoverflow.com/a/27087733/4008175

祝你好运!

于 2017-05-25T07:06:06.127 回答