iOS中键盘和UIVew之间的空白

iOS中键盘和UIVew之间的空白,ios,uitabbarcontroller,uitextview,ios-autolayout,iqkeyboardmanager,Ios,Uitabbarcontroller,Uitextview,Ios Autolayout,Iqkeyboardmanager,我有一个基于选项卡栏控制器的应用程序,我正在使用IQKeyboardManager处理类似表单的东西 步骤1:选项卡栏控制器,底部为UITextView,内部为UIView。查看图1 第2步:当我单击UITextView时,键盘会出现,但由于选项卡栏的原因,会出现空白。我已尝试删除IQKeyboardManager,但仍然发生,因此已确认这不是IQKeyboardManager的问题。这是由选项卡栏控制器引起的问题 如何删除该间距?您是对的。空白空间是由标签栏引起的。当接收到键盘时,通过添加额

我有一个基于选项卡栏控制器的应用程序,我正在使用
IQKeyboardManager
处理类似表单的东西

步骤1:选项卡栏控制器,底部为
UITextView
,内部为
UIView
。查看图1

第2步:当我单击
UITextView
时,键盘会出现,但由于选项卡栏的原因,会出现空白。我已尝试删除
IQKeyboardManager
,但仍然发生,因此已确认这不是
IQKeyboardManager
的问题。这是由选项卡栏控制器引起的问题


如何删除该间距?

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

// 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 )
如果有约束,则需要对其进行调整。回答得好:

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


祝你好运

键盘和文本字段之间有任何限制吗?@Nan键盘和文本视图之间没有限制。@Hardiksha我调整了答案。您需要更新textview父视图的帧位置。请参阅更新的答案。