iOS WisdomKeyboardKing第三方Swift_SDK键盘智能管家

1.今天给大家介绍个好用的开源框架:WisdomKeyboardKing 2.SDK说明:智能键盘管家,处理键盘与UITextField,UITextView响应的位置判定,支持处理文字输入和输出格式转换功能 3.通过pod集成:pod 'WisdomKeyboardKing' 也可以github下载:https://github.com/tangjianfengVS/WisdomKeyboardKing 下面SDK分析: —————WisdomKeyboardKing 一期Framework功能,下面看一期的功能————— 一:Swift SDK,完成兼容OC调用 二:键盘弹出,自动避让UITextField,UITextView类控件 注:(同一个页面大量的UITextField与UITextView,可以准确避让) 三: 切换输入,键盘准确避让UITextField,UITextView类控件 四:UITextField,UITextView的避让与keyboard的间距,支持可设置 间距设置属性: betweenKeyboardSpace 有间距默认值: 10.0 五:支持 UITextField,UITextView的wisdomTask任务, --------------wisdomTask分析------------ beginTasks: 唤起键盘时回调 changeTasks: 变化文字内容时回调 endTasks: 关闭键盘或者更换相应对象时回调 注:闭包回调代替代理,使用方便,不需要实现Task可传nill 使用案例: /** * view :做移动的父类视图 * title :文字内容 * rect :当前在屏幕中的frame */ bottomField.wisdomTask(beginTasks: { (view, title, rect) in //print(view,title,rect) //唤起键盘时回调 }, changeTasks: { (view, title, rect) in //print(view,title,rect) //变化文字内容时回调 }) { (view, title, rect) in //print(view,title,rect) //关闭键盘或者更换相应对象时回调 } 六:支持号码数字类型的处理显示 *枚举: public enum WisdomTextOutputMode { case normal case PhoneNumber11_4 case PhoneNumber11_3X4 case BankcardNumber16_4 case BankcardNumber19_4 } *枚举分析(数字号码分隔格式显示类型): PhoneNumber11_4: 1520 1218 189 (限制11位) PhoneNumber11_3X4: 152 0121 8189 (限制11位) BankcardNumber16_4: 1212 1212 1212 1212 (16位银行卡号) BankcardNumber19_4: 1212 1212 1212 1212 121 (19位银行卡号) *使用案例: let textField = UITextField() textField.text = "15201218189" textField.textOutputMode = .PhoneNumber11_3X4 (显示结果:152 0121 8189 ) 注:设置了WisdomTextOutputMode,键盘输出类型都是强制数字输出 *枚举: public enum WisdomTextOutputMode { case normal case PhoneNumber11_4 case PhoneNumber11_3X4 case BankcardNumber16_4 case BankcardNumber19_4 } *枚举分析(数字号码分隔格式显示类型): PhoneNumber11_4: 1520 1218 189 (限制11位) PhoneNumber11_3X4: 152 0121 8189 (限制11位) BankcardNumber16_4: 1212 1212 1212 1212 (16位银行卡号) BankcardNumber19_4: 1212 1212 1212 1212 121 (19位银行卡号) *使用案例: let textField = UITextField() textField.text = "15201218189" textField.textOutputMode = .PhoneNumber11_3X4 (显示结果:152 0121 8189 ) 注:设置了WisdomTextOutputMode,键盘输出类型都是强制数字输出 七:支持过期时间的处理显示(输入处理时间会大于当前时间) 应用场景:优惠券 和 活动 等日期过期提示显示 枚举: public enum WisdomInputTimeConvertType { case timestamp_10 //10位时间戳 case timestamp_13 //13位时间戳 case input_joint case input_N_Y_R_joint } 枚举分析(时间处理的原始数据类型): timestamp_10=0 //10位时间戳 timestamp_13=1 //13位时间戳 input_joint //"-"拼接 input_N_Y_R_joint //"年,月,日"拼接 --------------过期输出显示样式说明: /** * The expiration time type that needs to be supported for display * 需要支持显示的过期时间类型 * 使用规则: 1.默认值: expiredTomorrow, expiredAfterTomorrow * 2.精确度越高,级别越高: expiredToday_hour > expiredToday * expiredTomorrow_hour > expiredTomorrow * expiredAfterTomorrow_hour > expiredAfterTomorrow * 3.设置了高级别,会过滤低级别样式,低级别样式不再显示 * 4.高级别,低级别同时显示,只安装高级别样式显示 * 5.expiredToday 和 expiredToday_hour都不设置,“今天过期”不显示 */ @objc public enum WisdomExpiredTimeType: NSInteger { case expiredToday=0 //今天过期 case expiredToday_hour=1 //今天8点过期 case expiredTomorrow=2 //明天过期 case expiredTomorrow_hour=3 //明天8点过期 case expiredAfterTomorrow=4 //后天过期 case expiredAfterTomorrow_hour=5 //后天8点过期 } 使用案例: /** Expiration time filter: 过期输出格式样式 [今天8点过期] [明天过期] [后天过期] * timesText: 过期时间原始数据 * serverTimesText: 当前时间对比 (传nil默认与本地时间比对) * type: 输入处理的数据类型 (确认WisdomInputTimeConvertType) * displayTypeList: 需要支持显示的过期时间类型数组,是WisdomExpiredTimeType类型数组 * expiredStr: 过期文字描述,传nill或者空,结尾默认拼接"过期" * 返回值: Bool: 是否过期 (true未过期,fales已经过期) */ public class func expiredTimeOutput(timesText: String, serverTimesText: String?, type: WisdomInputTimeConvertType, displayTypeList: [WisdomExpiredTimeType.RawValue], expiredStr: String?) ->(Bool,String) { } OC调用: @objc public class func oc_ExpiredTimeOutput(timesText: String, serverTimesText: String?, type: WisdomInputTimeConvertType, displayTypeList: [WisdomExpiredTimeType.RawValue], expiredStr: String?) ->(String){ } *下图应用结果显示:当 displayTypeList = @{@(expiredToday_hour), @(expiredTomorrow_hour) ,@(expiredAfterTomorrow_hour)} 结果显示支持类型:1. 今天过期 今天8点过期 明天过期 明天8点过期 后天过期 后天8点过期 2. swift 方法BOOL值表示是否过期 八:支持历史时间的处理显示(不会大于当前时间) 应用场景:聊天 历史时间提示显示 枚举: public enum WisdomInputTimeConvertType { case timestamp_10 //10位时间戳 case timestamp_13 //13位时间戳 case input_joint case input_N_Y_R_joint } 枚举分析(时间处理的原始数据类型): timestamp_10 //10位时间戳 timestamp_13 //13位时间戳 input_joint //"-"拼接 input_N_Y_R_joint //"年,月,日"拼接 使用案例: /** * 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 (当天) *WisdomKeyboardKing 功能点介绍完了,如果有什么问题和指点可以QQ联系:497609288,欢迎来一起讨论技术问题https://www.cnblogs.com/tangjianfeng/p/9638928.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信