iOS中键盘和UIView之间出现空白

Posted

技术标签:

【中文标题】iOS中键盘和UIView之间出现空白【英文标题】:Blank space coming between keyboard and UIVew in iOS 【发布时间】:2017-05-25 06:53:53 【问题描述】:

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

第 1 步:标签栏控制器,底部为 UITextView,位于 UIView 内。查看图片 1。

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

如何去掉那个间距?

【问题讨论】:

键盘和文本域之间有什么限制吗? @Nan 键盘和 textView 之间没有约束。 【参考方案1】:

你是对的。空白是由标签栏引起的。通过添加额外的空间来覆盖视图中的 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://***.com/a/27870216/4008175

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

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

祝你好运!

【讨论】:

@HardikShah 我调整了我的答案。您需要更新 textview 的父视图的框架位置。查看更新的答案。

以上是关于iOS中键盘和UIView之间出现空白的主要内容,如果未能解决你的问题,请参考以下文章

当键盘出现在 iOS 中时,将 UIView 上移

iOS 根据键盘的高度动态改变UIView的高度

iOS - 隐藏在键盘后面的 UIView 容器

模糊包含键盘及其下方内容的 UIView (iOS 7)

出现键盘时向上移动 UIView

沿键盘动画 UIView 出现动画