实现更安全、高扩展的自定义键盘 非UIButton

2017-10-14  本文已影响0人  wangtieshan

自定义键盘的原因

自定义键盘的封装网上的例子比比皆是,有的封装的非常完美,直接pod 集成到项目中便可以简单的使用,可是为什么我还要自定义一个呢?
一不是不是为了显摆,二不是网上的功能不满足需求,也不是不够便利
最主要的原因是不够安全!!!

为什么说不够安全

用过 Reveal 的同学都知道,可以抓到任何的 UI 控件,并且完美的展示各个视图的层级。
当然这只是一款软件,一种情况,所谓防小人不妨君子,我们需要更安全的键盘

当前网上的许多键盘都是通过 UIButton 堆起来,这样事件控制方便,title 设置便利,UI设计简易,不用考虑触摸事件等等诸多好处,但是。。。

正是因为如此的便利,有心之人想要抓取你的点击事件、title等等也是非常的便利

苹果官方键盘

苹果官方的键盘,通过 Reveal 可以看到,只要是涉及到具体的实体按键,底层都是一张图片。
至于点击了哪个按钮,可以通过监控触摸事件的变化,来对修饰图层做修改,从而实现一个完美的键盘。
官方键盘的优点:

自定义键盘

参考官方的键盘,写出了自己的自定义键盘,也是底层图片实现,监控触摸事件
没有安全只有更安全,这里自定义键盘只是相对于 UIButton 堆积起来的键盘,相对的更加安全,并不是绝对安全,请理解 “更加安全” 这个关键字

完善

由于当前时间比较少,只是设计了几款常用的键盘,需要完善的地方还是有很多,请同学多提建议

已完成:

未完成:

使用介绍

/**

*/

public enum KKeyBoardType {
    
    /// 纯数字键盘
    case number
    
    /// 含有小数的数字键盘
    case decimalNumber
    
    /// ASC 码键盘
    case letter
    
    /// 大写的ASC 键盘
    case upperLetter
    
    /// 小写的ASC 键盘
    case lowerLetter
    
    /// 身份证有效期
    case idValid
    
    /// 身份证号
    case idNumber
    
    /**** 以下两个键盘还没有实现 ****/
    /// 含有小数点的键盘
    case decimalPadNum
    
    /// 数字和字母键盘
    case numAndLetter
}

因为时间原因,未使用pod集成。但是 podspec 文件已经写好,查看demo即可看到,先本地pod接入

纯字母键盘 纯数字键盘 身份证有效期键盘 身份证号键盘

源码在 我的github 上
【注】请使用 Swift 3 运行

【声明】

此公共库为个人所有,业余时间编写,与任何公司或组织均无关系

使用该公共库的组织或者公司,本人有权收回使用权

上一篇下一篇

猜你喜欢

热点阅读