年后上班第一天择示,比較閑,上午的時候抽空整理了
iOS
開發(fā)中常用的易忘知識點(diǎn):iOS開發(fā)之 - 小冷易忘知識點(diǎn)總結(jié),有興趣的朋友們可以去看看榛丢。下午整理了之前用過的一個第三方庫——鍵盤處理神器IQKeyboardManager
。
平常在開發(fā)中挺庞,用到輸入框的地方不勝其數(shù)晰赞,當(dāng)輸入框位于屏幕底部時,彈起的鍵盤很可能覆蓋輸入框选侨,導(dǎo)致用戶看不到輸入結(jié)果掖鱼,體驗較差......
IQKeyboardManager
可以很簡單快捷的解決鍵盤遮蓋輸入框的問題,接下來就一起來學(xué)習(xí)一下吧援制。
先簡單認(rèn)識下 IQKeyboardManager
GitHub 地址:GitHub 地址官方示意效果圖如下:
再貼一下自己做的簡單效果圖??
先說下我的 Xcode 版本是:Version 8.1 (8B62)戏挡,簡單起見直接在 Main.storyboard 中拖入 7 個UITextField, 每個 UITextField 都設(shè)有占位文字晨仑。
以下是 IQKeyboardManager 的一些具體使用
1. 用 Cocoapod 導(dǎo)入或直接下載拖進(jìn)去褐墅,這里方便起見直接用 Cocoapod 導(dǎo)入。
IQKeyboardManager 的 GitHub地址:IQKeyboardManager 的 GitHub 地址
2. 在 AppDelegate.m 中導(dǎo)入頭文件
#import <IQKeyboardManager/IQKeyboardManager.h>
3. 在 AppDelegate 中設(shè)置全局屬性
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
IQKeyboardManager *keyboardManager = [IQKeyboardManager sharedManager]; // 獲取類庫的單例變量
keyboardManager.enable = YES; // 控制整個功能是否啟用
keyboardManager.shouldResignOnTouchOutside = YES; // 控制點(diǎn)擊背景是否收起鍵盤
keyboardManager.shouldToolbarUsesTextFieldTintColor = YES; // 控制鍵盤上的工具條文字顏色是否用戶自定義
keyboardManager.toolbarManageBehaviour = IQAutoToolbarBySubviews; // 有多個輸入框時寻歧,可以通過點(diǎn)擊Toolbar 上的“前一個”“后一個”按鈕來實現(xiàn)移動到不同的輸入框
keyboardManager.enableAutoToolbar = YES; // 控制是否顯示鍵盤上的工具條
keyboardManager.shouldShowTextFieldPlaceholder = YES; // 是否顯示占位文字
keyboardManager.placeholderFont = [UIFont boldSystemFontOfSize:17]; // 設(shè)置占位文字的字體
keyboardManager.keyboardDistanceFromTextField = 10.0f; // 輸入框距離鍵盤的距離
return YES;
}
4. 若某個類不需要使用 IQKeyboardManager掌栅,可以在這個類中這樣設(shè)置
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[IQKeyboardManager sharedManager].enable = NO;
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[IQKeyboardManager sharedManager].enable = YES;
}
5. 常用屬性介紹
-
sharedManager
:獲取類庫的單例變量 -
enable
:項目使用不使用 IQKeyboardManager 這個類庫,當(dāng)然码泛,某些頁面可以根據(jù)需要單獨(dú)設(shè)置 -
shouldResignOnTouchOutside
:點(diǎn)擊背景頁面時是否收起鍵盤 -
shouldToolbarUsesTextFieldTintColor
:控制鍵盤上的工具條文字顏色是否用戶自定義猾封,默認(rèn)為 NO -
toolbarManageBehaviour
:有多個輸入框時,可以通過點(diǎn)擊Toolbar 上的“前一個” “后一個”按鈕來實現(xiàn)移動到不同的輸入框 -
enableAutoToolbar
:是否顯示鍵盤上的工具條 -
shouldShowTextFieldPlaceholder
:是否顯示占位文字(如果輸入框有占位文字噪珊,那么在 Toolbar 中默認(rèn)會顯示出來) -
placeholderFont
:占位文字的字體大小 -
keyboardDistanceFromTextField
:輸入框距離鍵盤的距離