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的更多相关文章

  1. iOS Swift WisdomScanKit图片浏览器功能SDK

    iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介      WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...

  2. iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK

    iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言:    今天给大家 ...

  3. Building gRPC Client iOS Swift Note Taking App

    gRPC is an universal remote procedure call framework developed by Google that has been gaining inter ...

  4. iOS swift项目IM实现,从长连接到数据流解析分析之Socket

    iOS  swift项目IM实现,从长连接到底层数据解析分析之Socket 一:项目简介:  去年开始接手了一个国企移动项目,项目的需求是实现IM即时通讯功能. * 一期版本功能包括了:       ...

  5. Xamarin的不归路-ios模拟器没有键盘

    ios模拟器没有键盘解决方案: 勾选上就有了. 2016年9月1日

  6. 李洪强iOS开发之-环信02_iOS SDK 介绍及导入

    李洪强iOS开发之-环信02_iOS SDK 介绍及导入 iOS SDK 介绍及导入 iOS SDK 介绍 环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架.包括以下几个部分: SD ...

  7. 李洪强iOS开发之-环信01_iOS SDK 前的准备工作

    李洪强iOS开发之-环信01_iOS SDK 前的准备工作 1.1_注册环信开发者账号并创建后台应用 详细步骤:  注册并创建应用 注册环信开发者账号 第 1 步:在环信官网上点击“即时通讯云”,并点 ...

  8. ios如何判断键盘是否已经显示

    ios如何判断键盘是否已经显示   在群里看到有人问:ios如何判断键盘已经显示在界面上. 其实这个解决很简单: 写一个单例来管理键盘的状态. 这个单例在初始化方法init种监听2个事件,分别是 UI ...

  9. iOS swift的xcworkspace多项目管理(架构思想)

    iOS  swift的xcworkspace多项目管理(架构思想) 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整 ...

随机推荐

  1. 在线制作GIF图片项目愿景与范围

    在线制作GIF图片项目愿景与范围 a. 业务需求 a.1 背景 在当今社会中,随着聊天软件和web网站的普及,原创动画制作越来越吸引人们的眼球,一个好的动态图片,可能就会为你的网站或本人赢得更多人的认 ...

  2. scp远程传输文件和ssh远程连接

    ssh使用方法 如果从一台linux服务器通过ssh远程登录到另一台Linux机器, 这种情况通常会在多台服务器的时候用到. 如用root帐号连接一个IP为192.168.1.102的机器,输入:“  ...

  3. iframe内存释放

    Ext 核心开发人员Jack的回答是,TabPanelItem在关闭时并不会对自定义到tab中的元素做特殊处理,这部分工作必须在控件外来完成.另一方面, 相关资料称IE在iframe元素的回收方面存在 ...

  4. 304 Not Modified 简述

    在客户端向服务端发送http请求时,若返回状态码为304 Not Modified 则表明此次请求为条件请求.在请求头中有两个请求参数:If-Modified-Since 和 If-None-Matc ...

  5. MySQL审核工具Inception

    http://www.ywnds.com/?p=9423 https://github.com/mysql-inception/inception 一.Inception简介 Inception是集审 ...

  6. linux centos5.8装yum安装mysql

     默认的yum安装mysql都是5.1版本的 想要安装5.7的可以进行配置rpm包进行, mysql5.7安装路径 下面是默认的5.1安装路径 首先我们在使用yum安装的的时候会默认使用最新安装的,最 ...

  7. iOS手势处理

    iOS手势处理 iOS手势有着如下几种: UITapGestureRecognizer UIPinchGestureRecognizer UIRotationGestureRecognizer UIS ...

  8. 工具类-vim在shell中卡死的情况

    time:2015/11/35 在xshell下面使用vim编辑,有时候会出现突然卡死的情况.但是如果重新开一个终端的话,打开文件又是一大堆问题,今天又碰到了,搜了一下就找到一个帮助了[1] 原因:按 ...

  9. Python学习---IO的异步[asyncio模块(no-http)]

    Asyncio进行异步IO请求操作: 1. @asyncio.coroutine  装饰任务函数 2. 函数内配合yield from 和装饰器@asyncio.coroutine 配合使用[固定格式 ...

  10. [转]Centos7下面配置静态IP

    修改网卡配置文件(操作前先备份一下该文件),/etc/sysconfig/network-scripts/ifcfg-enp0s3 ,如下: TYPE=Ethernet BOOTPROTO=stati ...