在键盘上浮动活动文本字段的更好方法

重用UIKit元素,集中观察者,简化设计。

您在上图中看到了什么? 一个有趣的建筑 设计 。 您还能观察到什么? 三次重复 模式 。 尽管重复模式在体系结构中是神圣的,但在其他地方却不那么受重视。

我们所有人都在开发具有某种形式的应用程序,通常用于捕获个人详细信息(例如注册)。 您必须向上移动活动文本字段,因为它原本在键盘后面。 为此,您必须观察键盘的UIKeyboardDidShowUIKeyboardWillHide通知,以便您可以在键盘向上时对文本字段位置应用垂直偏移,而在关闭键盘时可以移除该偏移。 典型形式如下所示(从下面的代码片段创建)。

如果您从事的大型项目具有几种这样的形式,则可能发现自己不得不在需要该功能的每个ViewController中重复执行键盘通知观察代码。 但是,对于这样的表单,我们可以使用tableview而不是直接使用滚动视图,然后使用自定义的公共Tableview进行观察。 这是一个例子。

监听键盘显示更改的自定义表格视图

在这里,我们传入了将要坐在键盘上的视图(必须是weak property以避免保留周期)。 然后,我们创建一个协议,使用此自定义Tableview的所有类都必须遵守该协议。 接下来,在我们的注册视图控制器中,我们将使用自定义表KBTableView ,即KBTableView来监听键盘显示更改,而不是使用普通的表视图,并实现两种协议方法。

使用键盘侦听器TableView的ViewController

这就对了。 如果我们还有另一个带有窗体的viewcontroller,则它也只订阅KeyboardDisplayChangeProtocol协议,而不必观察键盘显示的变化。 如果您希望在此处查看我们的CustomCell

如果您觉得这篇文章有用,请随时喜欢它,也欢迎您关注我们的出版物以跟踪后续文章。 谢谢!