IQKeyboardManager的使用

在iOS开发中,经常会出现在UITextField/UITextView中输入东西的时候,弹起的键盘遮挡住了页面下面,很不方便,IQKeyboardManager就是解决这一棘手问题的.而且IQKeyboardManager使用简单,无需添加任何代码,也不需要特别的设置,上手很快.只需要cocopods一下,轻松结局问题.

IQKeyboardManager支持Objective-C和swift,另外, IQKeyboardManager是全局性质的额,也就是你pod之后,整个工程都会具有这个特性,如果某个页面不想这样,那么在哪个页面关闭这个功能就行.

下面简单介绍一下常用的几个小功能.

1.当键盘弹起的时候,自动上移View,使底部容易被遮挡的部分自动移动到键盘的上方。

图1.gif

当我们导入这个框架的时候,所有页面默认都有这个效果.无需做任何修改,当我们想在某个页面里不适用这个效果的时候,只要在这个页面导入头文件

#import <IQKeyboardManager.h> //头文件

再加入以下代码即可.

 - (void)viewWillAppear:(BOOL)animated{
     [super viewWillAppear:animated];
     //写入这个方法后,这个页面将没有这种效果
     [IQKeyboardManager sharedManager].enable = NO;
    }
    - (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    //最后还设置回来,不要影响其他页面的效果
    [IQKeyboardManager sharedManager].enable = YES;
    }

2.当键盘弹起的时候,我们希望点击空白处,键盘可以收回,如下图2效果.

图2.gif

当我们想实现图2的效果时,首先导入头文件

#import <IQKeyboardManager.h>

再加入以下代码:

- (void)viewWillAppear:(BOOL)animated{
     [super viewWillAppear:animated];
     //点击背景收回键盘
     [IQKeyboardManager sharedManager].shouldResignOnTouchOutside = YES;
 }
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
 }

写在viewWillAppear里面是为了在页面显示之前就有这个效果,提前加载.

3.在键盘上方有一个tooBar,当我们不想它显示出来的时候.加入下面这句代码.

[IQKeyboardManager sharedManager].enableAutoToolbar = NO;
  1. 键盘Return键的处理.

    可以将键盘上Return键变为next键,点击进入下一个输入框,最后一个UITextField/UITextView的时候变为Done,点击收起键盘.

图3.gif

首先导入头文件:

#import <IQKeyboardReturnKeyHandler.h>

再写一个IQKeyboardReturnKeyHandler成员变量,并实例化.如下:

@implementation XXSecondViewController
{
IQKeyboardReturnKeyHandler * _returnKeyHander;
}

- (void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
   _returnKeyHander = [[IQKeyboardReturnKeyHandler alloc] initWithViewController:self];
}
- (void)viewWillDisappear:(BOOL)animated{
  [super viewWillDisappear:animated];
}

IQKeyboardManager的底层其实就是写了一个sharedManager的单例,并重写了load方法,使其优先加载.这里只是简单常用的几个方法,已经够用.

这个框架功能强大,继续研究底层.

最后附上下载链接:https://github.com/hackiftekhar/IQKeyboardManager

作者:iOS_xuanhe
链接:https://www.jianshu.com/p/8412cfe5330f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

原文地址:https://www.cnblogs.com/holyday/p/9454952.html

时间: 2024-11-23 15:21:43

IQKeyboardManager的使用的相关文章

自动处理键盘事件的第三方库 IQKeyboardManager

http://www.w2bc.com/Article/27006 这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager 这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. 1 2 3 4 5 6 7 8 9 10 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOption

iOS第三方解决键盘遮挡-IQKeyboardManager

百度云:http://pan.baidu.com/s/1yg5ae githun:https://github.com/hackiftekhar/IQKeyboardManager AppDelegate中添加: [[IQKeyboardManager sharedManager] setToolbarManageBehaviour:IQAutoToolbarByPosition]; //输入框自动上移

iOS 键盘框架IQKeyboardManager使用

框架地址:https://github.com/hackiftekhar/IQKeyboardManager AppDelegate.m文件中 #import <IQKeyboardManager.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    IQKeyboardManager *manager = [IQK

聊天界面使用IQKeyboardManager导航栏及整个页面上移的解决方法

问题: 使用第三方库IQKeyboardManager时会使整个页面上移,导航栏页偏移出了显示范围.在聊天界面就会使得上面的消息看不到. 解决方法: 首先说明:在聊天界面使用IQKeyboardManager这个第三方库无法解决这个问题,至少我没找到解决办法.网上说的那些用ib创建UI,把控制器的view改成scrollview,或纯代码创建UI,重写loadView方法,然后把self.view = scrollview的解决方法会把布局搞乱.没有试,太麻烦.解决思路:在聊天页面禁用IQKey

iOS 键盘自适应(IQKeyboardManager)使用小结

IQKeyboardManager Github地址 经常在开发一个应用程序,我们遇到了一个问题,iPhone的键盘上滑覆盖的UITextField / UITextView.IQKeyboardManager可以防止键盘滑动问题和覆盖UITextField / UITextView无需你输入任何代码,不需要额外的设置要求.使用IQKeyboardManager你只需要添加源文件到你的项目. 主要特点 1)无代码 2)自动工作 3)没有更多的UIScrollView4)没有更多的子类 5)没有更

关于使用IQKeyBoardManager键盘还是被遮挡的问题解决方案

今天在做一个登录界面的时候发现使用了IQKeyBoardManager键盘还是被遮挡,解决方案如下 解决方案一:在所有视图的最外层添加一个UIView作为容器即可,但在有导航栏的情况下导航栏会跟着向上滑动 解决方案二:在所有视图的最外层添加一个UIScrollView作为容器即可,在有导航栏的情况下,导航栏不会跟着向上滑动 以上问题出现在iOS8系统,iOS7不会有此问题.

iOS自动处理键盘事件的第三方库:IQKeyboardManager

我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种.我们需要监听键盘事件,考虑点击背景收起键盘.考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套.这个库帮我们解决了这个事情. 这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager 这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. 1 - (BOOL)application:(UIApplicat

IQKeyboardManager 控制键盘的类库

这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {          IQKeyboardManager *manager = [IQKeyboardManager sharedManager];     man

IQKeyboardManager 用法

最近在项目中使用了IQKeyboardManager 来解决 UITextField 被键盘遮挡的问题,这个框架的使用方法可以说精简到了极致,只需要将 IQKeyboardManager 加入 Podfile,然后 pod install 就可以了. pod 'IQKeyboardManager' Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextF

IQKeyboardManager 自动处理键盘事件的第三方库

我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种.我们需要监听键盘事件,考虑点击背景收起键盘.考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套.这个库帮我们解决了这个事情. 这个库的下载地址:https://github.com/hackiftekhar/IQKeyboardManager 这个库是一个单例,它一旦生效,全项目任何界面都有效.让它生效的代码可以写在任意位置,我写在AppDelegate里. 1 2 3 4 5 6 7 8 9 10 - (BOOL)appl