自定义键盘的封装网上的例子比比皆是,有的封装的非常完美,直接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
}
纯字母键盘
纯数字键盘
身份证有效期键盘
身份证号键盘
源码在 我的github 上 【注】请使用 Swift 3 运行