zoukankan      html  css  js  c++  java
  • 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,推荐大家使用起来!

  • 相关阅读:
    super与this的比较
    队列学习小结
    最左原则
    show processlist
    循环
    打印偶数
    发布模块
    eval函数
    文件
    模块
  • 原文地址:https://www.cnblogs.com/tangjianfeng/p/9638928.html
Copyright © 2011-2022 走看看