TPKeyboardAvoiding-Goonbee 1.2.4.1

TPKeyboardAvoiding-Goonbee 1.2.4.1

测试已测试
Lang语言 Obj-CObjective C
许可 自定义
发布最后发布2014年12月

Luka Mirosevic维护。



  • 作者:
  • Luka Mirosevic

TPKeyboardAvoiding

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

简介

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

这是一个相对通用的、即插即用的解决方案:用于处理一切的 UIScrollViewUITableView 子类。

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

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

它还自动将键盘上的“下一个”按钮与文本字段切换选项连接起来。

使用方法

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

对于非 UITableViewControllers,将 TPKeyboardAvoidingScrollView.mTPKeyboardAvoidingScrollView.h 源文件添加到您的项目中,在视图控制器的 xib 中添加一个 UIScrollView,将滚动视图的类设置为 TPKeyboardAvoidingScrollView,并将在其中放置所有控制规则。您还可以无 Xib 编程创建它 - 换句话说,只需使用 TPKeyboardAvoidingScrollView 作为顶级视图。

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

注意

这些类目前调整contentInset参数,以避免内容移动到键盘下方。这是通过调整视图的边界而不是调整frame来工作的。这样做是为了 workaround 一个 iOS 的 bug,该 bug 导致动画跳闸,视图先向上跳然后平稳下来。为了方便此 workaround,contentSize 保持与视图边界至少相同的大小。

许可协议(Zlib)

版权所有(C)2013 迈克尔·泰森

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

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

  1. 此软件的来源不得被误传;你不可以声称是你编写了原始软件。如果你将此软件用于产品,产品文档中的致谢会受到欢迎,但不是必需的。

  2. 变更的源代码版本必须明确标记为修改版,并且不得被误传为原始软件。

  3. 本通知不得从任何源代码发行版本中移除或修改。


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