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多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...
随机推荐
- java String类 trim() 方法源码分析
public String trim() { int arg0 = this.value.length; //得到此字符串的长度 int arg1 = 0; //声 ...
- eclipse使用git命令行
idea自带git命令,可以很方便的进行提交代码.eclipse怎么做呢,下面我简单操作一下: 第一步: 第二步: 第三步: 这样就调出来git提交的命令窗口了: 运行成功如下: 注意: git的安装 ...
- 转载:http://www.cnblogs.com/double-K/p/6926367.html
sql专家感悟:不可说的感悟-——十年老技术转型(一) http://www.cnblogs.com/double-K/p/6926367.html
- RHEL7系统管理之网络管理
1. RHEL7的网络介绍 在RHEL7中, NetworkManager 提供的默认联网服务是一个动态网络控制和配置守护进程, 支持ifcfg类型的配置文件. NetworkManager 可用于连 ...
- Java简单的数据库连接
package test.postgre; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...
- 网罗收集10046的各种Case,方便trace信息的收集
每逢与遇到SQL相关性能,我们总是需要收集10046的,来查看和诊断问题.因为10046真实的反应的SQL语句执行的时候的真实信息,解析,执行,获取的时间消耗,row source operation ...
- django中的字段类型
from http://www.cnblogs.com/lhj588/archive/2012/05/24/2516040.html Django 通过 models 实现数据库的创建.修改.删除等操 ...
- Windows下Git使用报错:warning:LF will be replaced by CRLF in ××××.××
Windows下Git使用报错: warning:LF will be replaced by CRLF in ××××.××(文件名) The file will have its original ...
- 铁乐学python_day21_面向对象编程3
抽象类和接口类 以下内容大部分摘自博客http://www.cnblogs.com/Eva-J/ 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某 ...
- 一、Linux概述 二、Linux的安装 三、Linux的常用命令(重点)
一.Linux概述###<1>操作系统 OS,管理和控制 计算机的 硬件和软件资源的 计算机程序. 最基本的系统软件. 是用户和计算机交互的桥梁,是硬件和软件交互的桥梁. 操作系统:she ...