AutoKeyboardScrollView
AutoKeyboardScrollView 是一个智能 UIScrollView,它可以
- 滚动到适当的位置,并确保在键盘显示时,活动的 textField 是可见的
- 为 textField 定制顶部和底部边距
- 在点击 scrollView 时关闭键盘
- 在点击 "Return" 键时关闭键盘
- 新的
contentView
,使您与 Auto Layout 的工作更加容易
预览
为什么
在开发 iOS 项目时,表单视图非常常见。当键盘显示时,大的键盘会覆盖很大面积,这将会隐藏活动的 textField。
处理 UIScrollView 上的滚动有些麻烦,再次编写键盘通知和 textField 目标操作代码是微不足道的。
为了保持您的代码 DRY,并使您的 iOS 开发生活更加容易。
需求
- iOS 8.0+ / Mac OS X 10.9+
- Xcode 7.0
安装
CocoaPods
AutoKeyboardScrollView可通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中
pod "AutoKeyboardScrollView", '~> 1.5'
手动
只需将AutoKeyboardScrollView.swift
(位于./Source
,右键单击并下载链接文件)拖到您的项目中,即可直接使用。
用法
只需将AutoKeyboardScrollView
用作包含文本框或包含文本框的视图的父视图。在autoKeyboardScrollView.contentView
上添加子视图(请确保在.contentView
上添加子视图),然后它就可以工作了!
(注意,只有已添加到要添加的视图上的文本框才能被处理,您可以通过调用handleTextField:
或handleTextFields:
手动添加需要处理的文本框)
要运行示例项目,首先克隆存储库,然后从示例目录中运行pod install
。
它是如何工作的?
AutoKeyboardScrollView
是UIScrollView
的子类,以下列出了一些关键特性:
contentView
新增属性:contentView
,其功能与UITableViewCell相同。所有子视图应添加到contentView上,这对于处理带有ScrollView的Auto Layout非常有帮助(参考:Apple技术文档TN2154 - UIScrollView 和 Auto Layout)。
注意:为了让AutoKeyboardScrollView
确定其contentSize
,必须完全指定contentView
的宽度和高度。
点击空白处关闭键盘
AutoKeyboardScrollView将添加一个Tap手势,允许通过点击文本字段周围的空白区域来关闭键盘。
按“返回”键关闭键盘
AutoKeyboardScrollView会自动检测添加的新子视图中的textFields,并添加这些textField的UIControlEditing动作,让您在点击“返回”时关闭键盘。
与Interface Builder结合使用
在IB中创建一个包装视图,然后将其添加到autoKeyboardScrollView.contentView
作为子视图。
查看示例项目,并选择目标InterfaceBuilderExample。
要求
支持Auto Layout,未在基于frame的代码上测试。
支持iOS 7及以上版本。未在iOS 6上测试,因为Auto Layout自iOS 6以来已有,应该没问题。
作者
张宏昊 (Honghao Zhang)
许可证
AutoKeyboardScrollView遵从MIT许可证。有关更多信息,请参阅LICENSE文件。