iOS Swift WisdomKeyboardKing 键盘智能管家SDK
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,推荐大家使用起来!
iOS Swift WisdomKeyboardKing 键盘智能管家SDK的更多相关文章
- iOS Swift WisdomScanKit图片浏览器功能SDK
iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介 WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
- Building gRPC Client iOS Swift Note Taking App
gRPC is an universal remote procedure call framework developed by Google that has been gaining inter ...
- iOS swift项目IM实现,从长连接到数据流解析分析之Socket
iOS swift项目IM实现,从长连接到底层数据解析分析之Socket 一:项目简介: 去年开始接手了一个国企移动项目,项目的需求是实现IM即时通讯功能. * 一期版本功能包括了: ...
- Xamarin的不归路-ios模拟器没有键盘
ios模拟器没有键盘解决方案: 勾选上就有了. 2016年9月1日
- 李洪强iOS开发之-环信02_iOS SDK 介绍及导入
李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...
- 李洪强iOS开发之-环信01_iOS SDK 前的准备工作
李洪强iOS开发之-环信01_iOS SDK 前的准备工作 1.1_注册环信开发者账号并创建后台应用 详细步骤: 注册并创建应用 注册环信开发者账号 第 1 步:在环信官网上点击“即时通讯云”,并点 ...
- ios如何判断键盘是否已经显示
ios如何判断键盘是否已经显示 在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UI ...
- iOS swift的xcworkspace多项目管理(架构思想)
iOS swift的xcworkspace多项目管理(架构思想) 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...
随机推荐
- vue.js高仿饿了么(前期整理)
1.熟悉项目开发流程 需求分析——>脚手架工具——>数据mock——>架构设计——>代码编写——>自测——>编译打包. 2.熟悉代码规范 从架构设计.组件抽象.模块 ...
- jquery validation表单验证插件。
这个是刚学的,觉得对以后挺有用的,就想把自己所学的分享一下. 校验规则: (1)required:true 必输字段 (2)number:true 必须输入合法的数字(负数,小数) (3)digits ...
- 树莓派raspberry Pi2 介绍
Compared to the Raspberry Pi 1 it has: A 900MHz quad-core ARM Cortex-A7 CPU 1GB RAM Like the (Pi 1) ...
- linux下postgresql的安装与卸载
安装: sudo apt-get update sudo apt-get install postgresql 启动: sudo /etc/init.d/postgresql start 查看是否启动 ...
- C# 队列(Queue) 和堆栈(Stack)
队列 (Queue) ...
- python基础_特殊符号
#\n 回车符 #\r 换行符 #\s 空格 #\t tab符号,不知道?开个txt文本,然后按电脑的tab键,就是caps lock上面那个,卧槽,看到一个大长空格(也可能是个超短空格),这个就是t ...
- [翻译] iOSSharedViewTransition
iOSSharedViewTransition iOS 7 based transition library for View Controllers having a Common View 基于i ...
- 使用FastCoder写缓存单例
使用FastCoder写缓存单例 FastCoder可以存储字典,数组,鄙人将FastCoder封装,CoreData可以缓存的东西,用这个都可以缓存,但是只适合缓存少量的数据(不适合存储几万条数据) ...
- Python学习---爬虫学习[scrapy框架初识]
Scrapy Scrapy是一个框架,可以帮助我们进行创建项目,运行项目,可以帮我们下载,解析网页,同时支持cookies和自定义其他功能. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的 ...
- Ajax请求:本地跨域的问题
问题出现一: 1.Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-e ...