• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS WisdomKeyboardKing第三方Swift_SDK键盘智能管家

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

iOS WisdomKeyboardKing第三方Swift_SDK键盘智能管家

1.今天给大家介绍个好用的开源框架:WisdomKeyboardKing

2.SDK说明:智能键盘管家,处理键盘与UITextField,UITextView响应的位置判定,支持处理文字输入和输出格式转换功能

3.通过pod集成:pod 'WisdomKeyboardKing'

                          也可以github下载:https://github.com/tangjianfengVS/WisdomKeyboardKing

 

下面SDK分析:

—————WisdomKeyboardKing 一期Framework功能,下面看一期7个功能—————---

一:Swift SDK,完成兼容OC调用

二:键盘弹出,自动避让UITextField,UITextView类控件 注:(同一个页面大量的UITextField与UITextView,可以准确避让)

三:切换输入,键盘准确避让UITextField,UITextView类控件

四:UITextField,UITextView的避让与keyboard的间距,支持可设置

     

       间距设置属性: betweenKeyboardSpace

      有间距默认值: 10.0

五:支持 UITextField,UITextView的wisdomTask任务,

       --------------wisdomTask分析------------
       beginTasks: 唤起键盘时回调
       changeTasks: 变化文字内容时回调
       endTasks: 关闭键盘或者更换相应对象时回调

       注:闭包回调代替代理,使用方便,不需要实现Task可传nill

       使用案例:
       /**
       * view :做移动的父类视图
       * title :文字内容
       * rect :当前在屏幕中的frame
       */
       bottomField.wisdomTask(beginTasks: { (view, title, rect) in
             //print(view,title,rect)
             //唤起键盘时回调
      }, changeTasks: { (view, title, rect) in
            //print(view,title,rect)
            //变化文字内容时回调
     }) { (view, title, rect) in
            //print(view,title,rect)
            //关闭键盘或者更换相应对象时回调
     }

六:支持号码数字类型的处理显示

     枚举:
     public enum WisdomTextOutputMode {
              case normal
              case PhoneNumber11_4
              case PhoneNumber11_3X4
              case BankcardNumber16_4
              case BankcardNumber19_4
     }

    枚举分析(数字号码分隔格式显示类型):
    PhoneNumber11_4: 1520 1218 189 (限制11位)
    PhoneNumber11_3X4: 152 0121 8189 (限制11位)
    BankcardNumber16_4: 1212 1212 1212 1212 (16位银行卡号)
    BankcardNumber19_4: 1212 1212 1212 1212 121 (19位银行卡号)

    使用案例:
    let textField = UITextField()
    textField.text = "15201218189"
    textField.textOutputMode = .PhoneNumber11_3X4
    (显示结果:152 0121 8189 )

    注:设置了WisdomTextOutputMode,键盘输出类型都是强制数字输出

    枚举:
    public enum WisdomTextOutputMode {
          case normal
          case PhoneNumber11_4
          case PhoneNumber11_3X4
          case BankcardNumber16_4
          case BankcardNumber19_4
    }

    枚举分析(数字号码分隔格式显示类型):
     PhoneNumber11_4: 1520 1218 189 (限制11位)
     PhoneNumber11_3X4: 152 0121 8189 (限制11位)
     BankcardNumber16_4: 1212 1212 1212 1212 (16位银行卡号)
     BankcardNumber19_4: 1212 1212 1212 1212 121 (19位银行卡号)

     使用案例:
     let textField = UITextField()
     textField.text = "15201218189"
     textField.textOutputMode = .PhoneNumber11_3X4
     (显示结果:152 0121 8189 )

     注:设置了WisdomTextOutputMode,键盘输出类型都是强制数字输出

七:支持过期时间的处理显示(输入处理时间会大于当前时间) 应用场景:优惠券 和 活动 等日期过期提示显示

    枚举:
    public enum WisdomInputTimeConvertType {
          case timestamp_10 //10位时间戳
          case timestamp_13 //13位时间戳
          case input_joint
          case input_N_Y_R_joint
   }

   枚举分析(时间处理的原始数据类型):
   timestamp_10=0 //10位时间戳
   timestamp_13=1 //13位时间戳
   input_joint //"-"拼接
   input_N_Y_R_joint //"年,月,日"拼接


--------------过期输出显示样式说明:
    /**
      * The expiration time type that needs to be supported for display
      * 需要支持显示的过期时间类型
      * 使用规则: 1.默认值: expiredTomorrow, expiredAfterTomorrow
      * 2.精确度越高,级别越高: expiredToday_hour > expiredToday
      * expiredTomorrow_hour > expiredTomorrow
      * expiredAfterTomorrow_hour > expiredAfterTomorrow
      * 3.设置了高级别,会过滤低级别样式,低级别样式不再显示
      * 4.高级别,低级别同时显示,只安装高级别样式显示
      * 5.expiredToday 和 expiredToday_hour都不设置,“今天过期”不显示
      */
     @objc public enum WisdomExpiredTimeType: NSInteger {
            case expiredToday=0 //今天过期
            case expiredToday_hour=1 //今天8点过期
            case expiredTomorrow=2 //明天过期
            case expiredTomorrow_hour=3 //明天8点过期
            case expiredAfterTomorrow=4 //后天过期
            case expiredAfterTomorrow_hour=5 //后天8点过期
      }

      使用案例:
      /** Expiration time filter: 过期输出格式样式 [今天8点过期] [明天过期] [后天过期]
       * timesText: 过期时间原始数据
       * serverTimesText: 当前时间对比 (传nil默认与本地时间比对)
       * type: 输入处理的数据类型 (确认WisdomInputTimeConvertType)
       * displayTypeList: 需要支持显示的过期时间类型数组,是WisdomExpiredTimeType类型数组
       * expiredStr: 过期文字描述,传nill或者空,结尾默认拼接"过期"
       * 返回值: Bool: 是否过期 (true未过期,fales已经过期)
       */
       public class func expiredTimeOutput(timesText: String,
                                                           serverTimesText: String?,
                                                           type: WisdomInputTimeConvertType,
                                                           displayTypeList: [WisdomExpiredTimeType.RawValue],
                                                           expiredStr: String?) ->(Bool,String) {

       }

       OC调用:
       @objc public class func oc_ExpiredTimeOutput(timesText: String,
                                                                         serverTimesText: String?,
                                                                         type: WisdomInputTimeConvertType,
                                                                         displayTypeList: [WisdomExpiredTimeType.RawValue],
                                                                         expiredStr: String?) ->(String){
        }

        

        结果显示支持类型:1. 今天过期 今天8点过期 明天过期 明天8点过期 后天过期 后天8点过期
                                   2. swift 方法BOOL值表示是否过期

八:支持历史时间的处理显示(不会大于当前时间)

     应用场景:聊天 历史时间提示显示

     枚举:
     public enum WisdomInputTimeConvertType {
           case timestamp_10 //10位时间戳
           case timestamp_13 //13位时间戳
           case input_joint
           case input_N_Y_R_joint
     }

     枚举分析(时间处理的原始数据类型):
     timestamp_10 //10位时间戳
     timestamp_13 //13位时间戳
     input_joint //"-"拼接
     input_N_Y_R_joint //"年,月,日"拼接

     使用案例:
      /**
       * 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 (当天)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
学好三角学(函数) — SWIFT和JAVASCRIPT游戏开发的必备技能 iFIERO.com ...发布时间:2022-07-14
下一篇:
Swift 函数提前返回发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap