UIScrollview 已实现,但 UITextfields 仍被键盘覆盖

Posted

技术标签:

【中文标题】UIScrollview 已实现,但 UITextfields 仍被键盘覆盖【英文标题】:UIScrollview implemented, but UITextfields still covered by keyboard 【发布时间】:2011-04-10 21:23:28 【问题描述】:

我已经浏览了这里和互联网上的大部分帖子。我确实找到了很多我正在寻找的答案,但仍然存在一个问题,我不知道如何解决它:基本上,我在 IB 中有如下设置:

有几个文本字段供用户一一填写。然而,当用户完成“城市”文本字段时,他必须按键盘上的“完成”退出,然后才能转到“电话”字段并填写其余部分。我已经实现了在用户开始编辑“电话”字段时向上移动视图的方法,但这仅在单击“电话”字段时发生。但是,从上到下,在完成“城市”字段后,用户甚至看不到“电话”字段,所以他怎么点击它,结果,视图怎么能向上移动呢? 我很困惑。我已经实现了滚动视图,但是当我尝试向上滚动屏幕时没有任何反应。

【问题讨论】:

【参考方案1】:

尝试使用本文中提到的https://github.com/michaeltyson/TPKeyboardAvoiding https://***.com/a/8590988/364413

【讨论】:

【参考方案2】:

这里有两个教程可以在键盘出现时向上移动文本字段。

https://web.archive.org/web/20160316104414/http://www.iphonesampleapps.com/2009/12/adjust-uitextfield-hidden-behind-keyboard-with-uiscrollview/

http://iosdevelopertips.com/user-interface/adjust-textfield-hidden-by-keyboard.html

【讨论】:

【参考方案3】:

只是滚动在这里没有帮助 - 您需要调整整个视图的大小。

订阅 UIKeyboardWillShowNotification、UIKeyboardWillHideNotification 通知并在那里调整滚动视图的大小:当键盘显示时将其缩小,当键盘消失时将其放大。您可以通过获取通知的用户信息中的 UIKeyboardFrameBeginUserInfoKey 键下的值来获取键盘大小。

【讨论】:

以上是关于UIScrollview 已实现,但 UITextfields 仍被键盘覆盖的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 在 iOS 7 上停止滚动

如何连接 UIButton 和 UIText

UIScrollView 内的可选 UITableViewCells

实现垂直 UIScrollView

根据内容大小属性设置 UIText 视图的宽度

从 UIText 字段的用户输入更改 UIView 框架的高度和宽度