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;

4. 鍵盤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

如果對你有幫助,點個贊再走吧!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容