TPKeyboardAvoiding-Extend 1.3.1.2

TPKeyboardAvoiding-Extend 1.3.1.2

测试已测试
语言语言 Obj-CObjective C
许可证 zlib
发布日期上次发布2017年8月

wuzhx维护。



  • By
  • Michael Tyson

TPKeyboardAvoiding

这是一个iOS中移除键盘以方便文本字段输入的通用解决方案。

简介

目前有大量解决方案提出如何将 UITextFieldUITextView 移出键盘编辑方式,通常涉及监听 UIKeyboardWillShowNotificationUIKeyboardWillHideNotification 或实现 UITextFieldDelegate 委托方法,调整父视图的frame或使用 UITableViewscrollToRowAtIndexPath:atScrollPosition:animated:,但大多数解决方案都相对 DIY,并且必须为每个需要此功能的视图控制器实现。

这是一个相对通用的、直接使用的解决方案:处理所有操作的 UIScrollViewUITableView 子类。

当键盘即将出现时,子类将查找即将编辑的子视图,并调整其frame和偏移量,确保该视图可见,并执行与键盘弹出匹配的动画。当键盘消失时,它将恢复其先前的大小。

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

它还自动连接键盘上的 "下一个" 按钮以在不同文本字段之间切换。

用法

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

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

要禁用自动 "下一个" 按钮功能,将 UITextField 的返回键类型更改为除默认值以外的任何内容。

备注

这些类目前调整contentInset参数以避免内容滑动到键盘下方。这与调整frame相反,是为了解决导致视图在向上跳跃后才平稳下来的iOS漏洞引起的卡顿动画问题。为了便于这一解决方案的执行,内容大小保持在至少与视图框架相同的尺寸。

许可证(Zlib)

版权所有(c)2013 Michael Tyson

该软件按照原样提供,不包含任何明示或暗示的保证。在任何情况下,作者都不会因使用本软件而承担任何损害赔偿责任。

任何人都可以出于任何目的使用本软件,包括商业应用,并可以自由修改和重新分发,但需遵守以下限制:

  1. 此软件的来源不得误导;不得声称你是原始软件的作者。如果你在本产品中使用此软件,产品文档中的致谢将被欣赏但不是必需的。

  2. 修改过的源代码版本必须明显标识为修改版,并且不得误认为原始软件。

  3. 此声明不得从任何源分发中删除或更改。


Michael Tyson,A Tasty Pixel
[email protected]