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. oracle 实现主键自增

    -- 创建表 drop table test; create table test(id number(10), name varchar2(10)); -- 创建对列 drop sequence s ...

  2. 【项目管理】git和码云的使用

    缘起 说了那么多关于git和码云相关的事,一直都没给大伙讲解这个码云究竟是个啥玩意儿. 今天就给大伙说说如何通过git和码云搭建属于自己的代码库. 码云 码云(Git@OSC)是开源中国社区团队推出的 ...

  3. LeetCode题解之Rotate Array

    1.题目描述 2.代码 void rotate(vector<int>& nums, int k) { ) return ; && (k / nums.size() ...

  4. Eigen学习

    Eigen 是一个基于C++的线性代数库,其中实现大量常用的线性代数算法,包括常规矩阵计算,矩阵变换,矩阵分解,矩阵块操作.Eigen 广泛地应用在开源项目中,例如OpenCV,PCL(Point C ...

  5. 阿里云ECS服务器环境搭建 ubuntu 16.04 图形界面的安装

    https://blog.csdn.net/zwq912318834/article/details/80528374

  6. MySQL: sql_safe_updates

    在my.cnf中设置sql_safe_updates=1 启动mysqld失败. error log报错: 2018-11-20T14:28:14.567022+08:00 0 [ERROR] unk ...

  7. 转:C# WinForm窗体及其控件的自适应

    一.说明 2012-11-30 曾经写过 <C# WinForm窗体及其控件自适应各种屏幕分辨率>  ,其中也讲解了控件自适应的原理.近期有网友说,装在panel里面的控件,没有效果? 这 ...

  8. [翻译] 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 ...

  9. Python学习---IO的异步[asyncio +aiohttp模块]

    aiohttp aiohttp是在asyncio模块基础上封装的一个支持HTTP请求的模块,内容比8.4.2[基于asyncio实现利用TCP模拟HTTP请求]更全面 安装aiohttp: pip3 ...

  10. esxcli software vib 命令为 ESXi 5.x/6.x 主机安装补丁程序 (2008939)

      参考KB:https://kb.vmware.com/s/article/2008939?lang=zh_CN    Symptoms 免责声明:本文为 “esxcli software vib” ...