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多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...
随机推荐
- oracle 实现主键自增
-- 创建表 drop table test; create table test(id number(10), name varchar2(10)); -- 创建对列 drop sequence s ...
- 【项目管理】git和码云的使用
缘起 说了那么多关于git和码云相关的事,一直都没给大伙讲解这个码云究竟是个啥玩意儿. 今天就给大伙说说如何通过git和码云搭建属于自己的代码库. 码云 码云(Git@OSC)是开源中国社区团队推出的 ...
- LeetCode题解之Rotate Array
1.题目描述 2.代码 void rotate(vector<int>& nums, int k) { ) return ; && (k / nums.size() ...
- Eigen学习
Eigen 是一个基于C++的线性代数库,其中实现大量常用的线性代数算法,包括常规矩阵计算,矩阵变换,矩阵分解,矩阵块操作.Eigen 广泛地应用在开源项目中,例如OpenCV,PCL(Point C ...
- 阿里云ECS服务器环境搭建 ubuntu 16.04 图形界面的安装
https://blog.csdn.net/zwq912318834/article/details/80528374
- MySQL: sql_safe_updates
在my.cnf中设置sql_safe_updates=1 启动mysqld失败. error log报错: 2018-11-20T14:28:14.567022+08:00 0 [ERROR] unk ...
- 转:C# WinForm窗体及其控件的自适应
一.说明 2012-11-30 曾经写过 <C# WinForm窗体及其控件自适应各种屏幕分辨率> ,其中也讲解了控件自适应的原理.近期有网友说,装在panel里面的控件,没有效果? 这 ...
- [翻译] USING GIT IN XCODE [3] 在XCODE中使用GIT[3]
USING GIT IN XCODE MAKING AND COMMITTING CHANGES Once you have a working copy of your project, it’s ...
- Python学习---IO的异步[asyncio +aiohttp模块]
aiohttp aiohttp是在asyncio模块基础上封装的一个支持HTTP请求的模块,内容比8.4.2[基于asyncio实现利用TCP模拟HTTP请求]更全面 安装aiohttp: pip3 ...
- esxcli software vib 命令为 ESXi 5.x/6.x 主机安装补丁程序 (2008939)
参考KB:https://kb.vmware.com/s/article/2008939?lang=zh_CN Symptoms 免责声明:本文为 “esxcli software vib” ...