iOS Swift WisdomKeyboardKing 鍵盤智能管家SDK
【1】前言:
今天給大家推薦個好用的開源框架:WisdomKeyboardKing,方面iOS日常開發,優點和功能請看下面介紹。
【2】簡介:
WisdomKeyboardKing SDK是一款鍵盤智能管家,
用於處理鍵盤與UITextField,UITextView輸入控件響應的位置判定,實現智能避讓, 支持上下移動動畫效果。
WisdomKeyboardKing SDK還實現了處理文字輸入和輸出格式轉換功能。
【3】SDK集成:
通過pod:pod 'WisdomKeyboardKing'
也可以github下載:https://github.com/tangjianfengVS/WisdomKeyboardKing
【4】WisdomKeyboardKing 一期Framework功能SDK分析
一: Swift4.2編寫的SDK,支持iOS8.0及其以上系統版本, 並且完全兼容OC項目的調用。
二: 針對系統Keyboard鍵盤彈出,無需創建對象,無需調用SDK任何方法,會自動避讓UITextField,UITextView類控件。
注:(同一個頁面大量的UITextField與UITextView,可以准確避讓)
三: 切換輸入或者更換輸入對象,鍵盤可以准確避讓UITextField,UITextView類控件
四:UITextField,UITextView的避讓與keyboard的間距,支持可設置
1. 界面效果:
2. 全局默認值:
3. 全局設置間距:
代碼設置:
30.0效果圖:
五:支持 UITextField,UITextView的wisdomTask任務
【優點】:
替代了UITextField和UITextView代理方法,不實現可以傳nil,轉換成閉包使用更加集中和方便。
【SDK接口】:
【案例應用】:
六:處理號碼數字類型顯示格式
【功能】:
【SDK屬性】:
【案例應用】:
七:對比當前過期時間格式的處理
【應用場景】:
優惠券或者活動 等等日期過期提示顯示,需要處理的時間會大於當前時間,然后提示什么時候過期。
【類型說明】:
在處理時間格式轉換時用到了2類枚舉,【時間入參】類型 和 【需要支持的過期時間格式顯示】類型,下面分析類型。
1:【時間數據入參類型】:
2:【支持的過期時間格式顯示參數類型】:
【SDK接口】:
SWIFT:支持兩個返回值:是否過期,和過期內容
OC:只支持一個返回值:過期內容,如果未過期,會返回空的String
【案例應用】:
1. 默認情況:
效果圖:
2. 自定義情況:
自定義效果圖:
3. 附加案例:
下圖應用結果顯示:當 displayTypeList = @{@(expiredToday_hour), @(expiredTomorrow_hour) ,@(expiredAfterTomorrow_hour)}
八:歷史時間的處理(需要顯示的時間不會大於當前時間)
【應用場景】:
對歷史時間格式的處理,在聊天消息中最為常用。
【時間數據入參類型】:
在處理時間格式轉換時用到了【時間數據入參類型】枚舉。
【SDK接口】:
【使用案例】:
效果圖:
附加案例:
/**
* timesText: 歷史時間原始數據
* serverTimesText: 當前時間對比 (不傳默認與本地時間比對)
* type: 輸入處理的數據類型 (WisdomInputTimeConvertType)
*/
let timeStr = WisdomTextOutput.historyTimeOutput(timesText: "1535557797", serverTimesText: nil, type: .timestamp)
結果顯示支持類型: 2017年08月12日 21:30 (非同年)
09月12日 23:30 (同年)
昨天 20:30 (昨天)
上午 10:30,下午 13:30 (當天)
九:設置視圖避讓鍵盤做移動的父類視圖
【問題發現】:
在集成別人的避讓鍵盤第三方SDK中,本人普遍發現個問題,當從控制器視圖上UITextFlied切換到UIScreen視圖上的UITextFlied時,存在很多問題,
比如:控制器視圖上的UITextFlied未復位,UIScreen的視圖上的UITextFlied避讓偏差很大。對於Pod集成到SDK來說,需要改內部實現。
【分析WisdomKeyboardKing】
針對上面提到的問題,WisdomKeyboardKing SDK中用Runtime為 UITextFlied 和 UITextView 添加了個屬性,專門用來指定避讓鍵盤做移動的父類視圖。
【屬性枚舉】:
【案例】:
結束:
*WisdomKeyboardKing 功能點介紹完了,如果有什么問題和指點可以QQ聯系:497609288,歡迎來一起討論技術問題
這是一個高效的SDK,推薦大家使用起來!