键盘和UIVew之间的空白在iOS中

时间:2017-05-25 06:53:53

标签: ios uitabbarcontroller uitextview ios-autolayout iqkeyboardmanager

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

screenshot of blank space in IQKeyboardManager

步骤1:标签栏控制器底部UITextView位于UIView内。检查图像1。

步骤2:当我点击UITextView时,会出现键盘,但由于标签栏而出现空白区域。我尝试删除IQKeyboardManager但仍然会发生,因此确认它不是IQKeyboardManager的问题。由于标签栏控制器,这是一个问题。

如何删除间距?

1 个答案:

答案 0 :(得分:2)

你是对的。空白区域由标签栏引起。通过在接收键盘时添加额外空格来覆盖视图中的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

祝你好运!