将自动滚动定位逻辑封装在UIScrollView中

在我帮助开发的某些项目中,有时我需要控制UITextField在屏幕上的位置,主要是在使用大型可滚动屏幕时。

我从来不喜欢结果,因为我在视图控制器中放入了很多逻辑,而且我一直认为逻辑部分不应该存在。 因此,我想到了一种实现此目标的方法,现在我认为我有一个更好的解决方案。

我建立了一个从UIScrollView扩展的新类。 在此类内,我们具有所有逻辑指令,可以随时检测键盘何时调用活动,然后以预先设置的距离底部的距离控制内容。

为了在我们自己的项目中应用此解决方案,您要做的唯一任务是将类复制并粘贴到项目中。 在Xcode Identity检查器上,您必须使用名为“ KeyboardScrollView”的自定义类。

它既简单又实用。 我利用一个名为“ Extra Bottom Space”的属性作为IBInspectable,以允许程序员在IDE上设置一些底部调整空间。

将来可能要做的改进是自动检测键盘附件空间。 在此版本中,我没有考虑该增强功能。 因此,如果使用不同尺寸的键盘配件,但使用相同的键盘尺寸,则逻辑将失败,我的软件将按预期运行。

实作

演示项目

启发式/魔术键盘
MagicKeyboard –它是嵌入式UIScrollView实现,用于控制UITextField的定位。 github.com

希望对您有所帮助,欢迎提出任何意见或建议。