1. 程式人生 > >iOS 鍵盤自適應(IQKeyboardManager)使用小結

iOS 鍵盤自適應(IQKeyboardManager)使用小結

不用寫一行程式碼就完美解決IOS開發鍵盤遮擋的類庫

[摘要:常常正在開闢一個運用順序的時間,我們會碰到一個題目。那便是正在iPhone上的輸進框 UITextField UITextView 。目前有了那個類庫,IQKeyboardManager能夠防備滑動鍵盤正在彈出的時間掩蓋一個文字字]

經常在開發一個應用程式的時候,我們會遇到一個問題。那就是在iPhone上的輸入框UITextFieldUITextView。現在有了這個類庫,IQKeyboardManager可以防止滑動鍵盤在彈出的時候覆蓋一個文字欄位。更重要的是,全程不需要你輸入任何程式碼。使用IQKeyboardManager您只需新增到您的專案的框架或新增原始檔到你的專案。就可以看到你想要的效果了。當然如果你需要更多的功能,可以寫那麼一點點的程式碼,就可以讓你的應用程式高大上啊高大上...

主要特點

1.除了想要特殊的效果外,你不需要寫一行程式碼2.完全的類庫自動工作模式3.沒有那麼多的UIScrollView,除非你需要新增4.沒有那麼多的子類啦5.不需要手動,好控制啊6.再也不需要匯入那麼多的"#import"了

IQKeyboardManager可以很好的支援專案的所有轉動方向,並且和ToolBar很好的結合。甚至允許您自定義距離文字欄位,新增“下一個”“上一個”“完成”按鈕作為鍵盤UIToolbar,還可以在需要的時候播放聲音。

截圖說明

Gif 動畫

硬體需求

Minimum iOS Target: iOS 5.0

Minimum Xcode Version: Xcode 5.0

如何使用

Cocoapod安裝:

你可以使用cocoapod來安裝IQKeyboardManager類庫。在Podfile檔案中這樣寫:

pod 'IQKeyboardManager'

就可以了

Framework加入:

將KeyboardManager.framework  ``IQKeyboardManager.bundle等檔案加入到專案中即可。詳細可以下載Demo並檢視。

!注意:需要在專案的設定other linker  flag中加入-ObjC。

(建議:目前Cocoapods已經是很成熟的第三方類庫管理工具了,推薦使用。)

常用的屬性和方法介紹

之前也說了,專案中,如果不是特別需要,一行程式碼都不用寫就已經可以夠你的完美使用了。不排除我們很多的“處女座”的程式設計師或者設計師嘛,這個時候,就可以新增那麼幾行程式碼就可以和我們的“處女心”了。

1.+sharedManager:獲取類庫的單例變數。我們也知道,一個專案中都是使用一個類庫的單例的,不然每一個輸入框我們怎麼好控制呢?所以如果你想自己修改一下介面,那麼就要先獲取到這個單例的變數,然後在往下面操作。     [IQKeyboardManager sharedManager].enable = NO; 2.enable:這個屬性就是說,我們的專案裡面使用不適用這個類庫所提供的輸入框不遮擋技術。如果您再某些頁面裡面不需要,可以在獲取到單例之後,將這個enable變數設定為FALSE。     [IQKeyboardManager sharedManager].enable = NO; 3.keyboardDistanceFromTextField:這個就是我們的輸入框距離我們的鍵盤的距離了。預設是10px。就是說輸入框預設會自動移動到鍵盤的上面10個畫素以方便使用者輸入。如果你需要自定義,可以改變這個值。 4.enableAutoToolbar:IQKeyboardManager提供的鍵盤上面預設會有“前一個”“後一個”“完成”這樣的輔助按鈕。如果你不需要,可以將這個enableAutoToolbar屬性設定為NO,這樣就不會顯示了。     [IQKeyboardManager sharedManager].enableAutoToolbar = NO; 5.toolbarManageBehaviour:如果有多個輸入框,那麼我們在輸入的時候可以通過點選在Toolbar中的“前一個”“後一個”按鈕來實現移動到不同的輸入框。可是輸入框的移動肯定是有一個規律的。這裡就提供了兩個方式。第一種就是加入的順序,第二種就是按照Tag值的大小排序。這個屬性可以設定兩個引數:IQAutoToolbarBySubviews 和IQAutoToolbarByTag 。 6.shouldToolbarUsesTextFieldTintColor:這個是用來將輸入框的tinicolor和toolbar的tinicolor相互協調的,預設為NO。7.shouldShowTextFieldPlaceholder:如果輸入框友placeholder的話,那麼在toolbar中預設會顯示出來。在中間的部分會顯示uitextfield的placeholder。如果你不需要,可以設定NO。8.placeholderFont :這個就是toolbar中顯示placeholder的字型大小了。你可以自定義通過傳入一個font。9.canAdjustTextView :這樣說,如果你的輸入框有600px的高度。那麼在點選輸入框的時候,鍵盤彈出來了,輸入框會如何顯示呢?如果把這個引數開啟,那麼輸入框的高度會剛好的降低,就是說,你可以看到輸入框的四個board,操作一下就會一目瞭然:) 7.輸入框到鍵盤的距離,預設是10px。 IQKeyboardManager *iqMagager = [IQKeyboardManagersharedManager];     iqMagager.keyboardDistanceFromTextField = 80;    防止上滑過渡,離得太遠; [IQKeyboardManager sharedManager].preventShowingBottomBlankSpace = NO; 源地址:https://github.com/yangfanacc/IQKeyboardManager Demo下載地址:https://github.com/yangfanacc/IQKeyboardManager/archive/master.zip