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. vue.js高仿饿了么(前期整理)

    1.熟悉项目开发流程 需求分析——>脚手架工具——>数据mock——>架构设计——>代码编写——>自测——>编译打包. 2.熟悉代码规范 从架构设计.组件抽象.模块 ...

  2. jquery validation表单验证插件。

    这个是刚学的,觉得对以后挺有用的,就想把自己所学的分享一下. 校验规则: (1)required:true 必输字段 (2)number:true 必须输入合法的数字(负数,小数) (3)digits ...

  3. 树莓派raspberry Pi2 介绍

    Compared to the Raspberry Pi 1 it has: A 900MHz quad-core ARM Cortex-A7 CPU 1GB RAM Like the (Pi 1) ...

  4. linux下postgresql的安装与卸载

    安装: sudo apt-get update sudo apt-get install postgresql 启动: sudo /etc/init.d/postgresql start 查看是否启动 ...

  5. C# 队列(Queue) 和堆栈(Stack)

    队列 (Queue)                                                                                          ...

  6. python基础_特殊符号

    #\n 回车符 #\r 换行符 #\s 空格 #\t tab符号,不知道?开个txt文本,然后按电脑的tab键,就是caps lock上面那个,卧槽,看到一个大长空格(也可能是个超短空格),这个就是t ...

  7. [翻译] iOSSharedViewTransition

    iOSSharedViewTransition iOS 7 based transition library for View Controllers having a Common View 基于i ...

  8. 使用FastCoder写缓存单例

    使用FastCoder写缓存单例 FastCoder可以存储字典,数组,鄙人将FastCoder封装,CoreData可以缓存的东西,用这个都可以缓存,但是只适合缓存少量的数据(不适合存储几万条数据) ...

  9. Python学习---爬虫学习[scrapy框架初识]

    Scrapy Scrapy是一个框架,可以帮助我们进行创建项目,运行项目,可以帮我们下载,解析网页,同时支持cookies和自定义其他功能. Scrapy是一个为了爬取网站数据,提取结构性数据而编写的 ...

  10. Ajax请求:本地跨域的问题

    问题出现一: 1.Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-e ...