TPKeyboardAvoiding-ycg 0.0.1

TPKeyboardAvoiding-ycg 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 zlib
发布最后的发布2015年1月

ycg维护。



  • 作者
  • Michael Tyson

TPKeyboardAvoiding

一个适用于 iOS 中将文本字段移出键盘位置的通用解决方案。

简介

对于如何在编辑期间将 UITextFieldUITextView 移出键盘位置的解决方案,有很多提议 - 通常情况下,这涉及到观察 UIKeyboardWillShowNotificationUIKeyboardWillHideNotification 或实现 UITextFieldDelegate 代理方法,调整父视图的框架,或使用 UITableViewscrollToRowAtIndexPath:atScrollPosition:animated:,但大多数提出的解决方案都相当 DIY,并且必须为每个需要它的视图控制器实现。

这是一个相对通用的快速实施解决方案:处理一切的 UIScrollViewUITableView 子类。

当键盘即将出现时,子类将找到即将编辑的子视图,并调整其框架和内容偏移量,确保该视图可见,并通过动画与键盘弹出匹配。当键盘消失时,它会恢复之前的尺寸。

它应该适用于基本上任何设置,无论是基于 UITableView 的界面还是手动放置视图的界面。

它还自动将键盘上的“下一步”按钮链接起来,以便在文本字段之间切换。

用法

对于与 UITableViewController 类一起使用,将 TPKeyboardAvoidingTableView.mTPKeyboardAvoidingTableView.h 添加到您的项目中,并在 xib 中将您的 UITableView 设置为 TPKeyboardAvoidingTableView。如果您没有使用与控制器一起的 xib,我知道没有简单的方法可以将它的 UITableView 设置为自定义类:最简便的方法是为此创建一个 xib。

对于非 UITableViewControllers,将 TPKeyboardAvoidingScrollView.mTPKeyboardAvoidingScrollView.h 源文件添加到您的项目中,在您的视图控制器 xib 中添加一个 UIScrollView,设置滚动视图的类为 TPKeyboardAvoidingScrollView,并将所有控件置于该滚动视图中。您也可以通过编程方式创建它,而无需使用 xib - 只需使用 TPKeyboardAvoidingScrollView 作为顶级视图。

要禁用自动“下一步”按钮功能,将 UITextField 的返回键类型更改为非 UIReturnKeyDefault。

注意事项

这些类目前调整contentInset参数以避免内容移动到键盘下方。这样做是为了解决iOS的一个bug,该bug会导致视图在稳定之前,突然向上跳跃,产生不流畅的动画。为了便于使用这个解决方案,保持contentSize至少与视图的frame大小一致。

许可证(Zlib)

版权(c)2013 迈克尔·泰森

本软件按“原样”提供,没有任何明确的或暗示的担保。在任何情况下,作者均不对使用本软件而产生的任何损害承担责任。

任何人有权为了任何目的使用此软件,包括商业应用,并且可以自由修改和重新分发,但需遵守以下限制:

  1. 本软件的来源不得被误述;你不应当声称是你编写了原始软件。如果你将此软件用于产品中,产品文档中应给予认可,但不是必需的。

  2. 修改后的源代码版本应明确标记为修改过的,并且不得将其误述为原始软件。

  3. 本声明不得从任何源代码分发中被删除或修改。


迈克尔·泰森,美味像素
[email protected]