变更记录
序号 | 录入时间 | 录入人 | 备注 |
---|---|---|---|
1 | 2015-03-26 | Alfred Jiang | - |
2 | 2015-12-22 | Alfred Jiang | - |
方案名称
键盘 - 使用 IQKeyboardManager 完美解决IOS开发键盘遮挡
关键字
键盘 \ Keyboard \ 弹出键盘 \ 收起键盘
需求场景
- 需要弹出键盘收起键盘的页面避免遮挡问题
参考链接
详细内容
1. Cocoapod安装:
你可以使用 Cocoapods 来安装 IQKeyboardManager 类库。在 Podfile 文件中这样写:
pod 'IQKeyboardManager'
就可以了
2. Framework加入:
将 KeyboardManager.framework 、 IQKeyboardManager.bundle 等文件加入到项目中即可。详细可以下载Demo并查看。
注意:需要在项目的设置 other linker flag 中加入 -ObjC 。
建议:目前 Cocoapods 已经是很成熟的第三方类库管理工具了,推荐使用。
3. 常用的属性和方法介绍
+sharedManager : 获取类库的单例变量。我们也知道,一个项目中都是使用一个类库的单例的,不然每一个输入框我们怎么好控制呢?所以如果你想自己修改一下界面,那么就要先获取到这个单例的变量,然后在往下面操作。
enable : 这个属性就是说,我们的项目里面使用不适用这个类库所提供的输入框不遮挡技术。如果您再某些页面里面不需要,可以在获取到单例之后,将这个 enable 变量设置为 FALSE。
keyboardDistanceFromTextField : 这个就是我们的输入框距离我们的键盘的距离了。默认是10px。就是说输入框默认会自动移动到键盘的上面10个像素以方便用户输入。如果你需要自定义,可以改变这个值。
enableAutoToolbar : IQKeyboardManager 提供的键盘上面默认会有“前一个”“后一个”“完成”这样的辅助按钮。如果你不需要,可以将这个 enableAutoToolbar 属性设置为 NO ,这样就不会显示了。
toolbarManageBehaviour : 如果有多个输入框,那么我们在输入的时候可以通过点击在 Toolbar 中的“前一个”“后一个”按钮来实现移动到不同的输入框。可是输入框的移动肯定是有一个规律的。这里就提供了两个方式。第一种就是加入的顺序,第二种就是按照 Tag 值的大小排序。这个属性可以设置两个参数: IQAutoToolbarBySubviews 和 IQAutoToolbarByTag 。
shouldToolbarUsesTextFieldTintColor : 这个是用来将输入框的 tinicolor 和 toolbar 的 tinicolor 相互协调的,默认为 NO 。
shouldShowTextFieldPlaceholder : 如果输入框友 placeholder 的话,那么在 toolbar 中默认会显示出来。在中间的部分会显示 uitextfield 的 placeholder 。如果你不需要,可以设置 NO 。
placeholderFont : 这个就是 toolbar 中显示 placeholder 的字体大小了。你可以自定义通过传入一个 font 。
canAdjustTextView : 这样说,如果你的输入框有 600px 的高度。那么在点击输入框的时候,键盘弹出来了,输入框会如何显示呢?如果把这个参数打开,那么输入框的高度会刚好的降低,就是说,你可以看到输入框的四个 board ,操作一下就会一目了然:)
效果图
(无)