PlateKeyboard_iOS 0.9.35

PlateKeyboard_iOS 0.9.35

shang1219178163 维护。



  • 作者
  • yzh

停车王车牌号码专用键盘 PlateKeyboard_iOS

(VehicleKeyboard-swift因为之前人员离职,权限问题,无法再维护)

概述

  • 停车王车牌号码专用键盘 iOS 版,支持新能源、武警、领事馆等多项专用格式车牌。
  • 代码使用 Swift 编写,已支持 OC 调用,可以绑定到 UIView 以使用网格输入,或绑定到 UITextField 以使用文本输入,键盘的使用方式与系统键盘类似。

demo 需要执行 pod install 才能运行

gif gif

如何使用

使用 CocoaPods 导入

在 Podfile 中添加

use_frameworks!

pod 'VehicleKeyboard-swift',

然后执行 pod install

OC 调用

OC 引用 pod 中的库

#import "VehicleKeyboard_swift-Swift.h"

直接作为inputView使用

[self.myTextField changeToPlatePWKeyBoardInpurView];

直接作为inputView使用时,回调于取值都与系统方法一致,直接当做系统UItextfield使用即可

格子式车牌专用输入框调用

首先在需要显示的位置摆放一个刚刚实例化的UIView,然后创建一个PWHandler对象将UIView同格子车牌输入框进行绑定

@property (strong,nonatomic) PWHandler *handler;
@property (weak, nonatomic) IBOutlet UIView *plateInputView;

self.handler = [PWHandler new];
//改变主题色
self.handler.mainColor = [UIColor redColor];
//改变文字大小
self.handler.textFontSize = 18;
//改变文字颜色
self.handler.textColor = [UIColor greenColor];

[self.handler setKeyBoardViewWithView:self.plateInputView];

self.handler.delegate = self;

格子输入框的各种回调方法

//车牌输入发生变化时的回调
- (void)palteDidChnageWithPlate:(NSString *)plate complete:(BOOL)complete{
NSLog(@"输入车牌号为:%@ \n 是否完整:%@",plate,complete ? @"完整" : @"不完整");
}

//输入完成点击确定后的回调
- (void)plateInputCompleteWithPlate:(NSString *)plate{
NSLog(@"输入完成。车牌号为:%@",plate);
}

//车牌键盘出现的回调
- (void)plateKeyBoardShow{
NSLog(@"键盘显示了");
}

//车牌键盘消失的回调
- (void) plateKeyBoardHidden{
NSLog(@"键盘隐藏了");
}

Swift调用

引用pod中的库

import VehicleKeyboard_swift

直接作为inputView使用

myTextField.changeToPlatePWKeyBoardInpurView()

直接作为inputView使用时,回调于取值都与系统方法一致,直接当做系统UItextfield使用即可

格子式车牌专用输入框调用

首先在需要显示的位置摆放一个刚刚实例化的UIView,然后创建一个PWHandler对象将UIView同格子车牌输入框进行绑定

let handler = PWHandler()
@IBOutlet weak var plateInputVIew: UIView!

handler.delegate = self
//改变主题色
handler.mainColor = UIColor.red
//改变字体大小
handler.textFontSize = 18
//改变字体颜色
handler.textColor = UIColor.blue

handler.setKeyBoardView(view: plateInputVIew)

格子输入框的各种回调方法

//输入完成点击确定后的回调
func plateInputComplete(plate: String) {
print("输入完成车牌号为:" + plate)
}
//车牌输入发生变化时的回调
func palteDidChnage(plate:String,complete:Bool) {
print("输入车牌号为:" + plate + "\n输入是否完整?:" + (complete ? "完整" : "不完整"))
}
//车牌键盘出现的回调
func plateKeyBoardShow() {
print("车牌键盘显示")
}
//车牌键盘消失的回调
func plateKeyBoardHidden() {
print("车牌键盘隐藏")
}

主要类的介绍

详细属性介绍请看注释

  • PWKeyboardView:核心类,主要负责键盘逻辑与布局;
  • PWHandler:自定义输入框的核心类,主要负责输入框逻辑,若使用者希望更好地调整布局,可继承此类重写layout的代理方法;
  • Engine:键盘逻辑的核心类,主要实现键位的布局和注册。

注意

  • 如果没有在podfile中添加use_frameworks!指令,请加上,加上后导入方式会有变化,请百度。
  • 直接作为inputView使用时,当输入长度超过车牌规定的长度时,会默认更新最后一位输入内容
  • 键盘除了主题色外,其他样式暂时不支持修改

支持

VehicleKeyboard是停车王品牌各产品线的基础组件,专门为提高中国车牌号码输入速度而定制开发的专用键盘组件,包括以下三个项目:

可能的Q&A

  • Q: pod install时失败提示找不到这个库?
  • A: pod实际上是在寻找本地缓存目录,新上传的库可能会出现找不到的情况,删除本地的~/Library/Caches/CocoaPods/search_index.json缓存目录,使用命令pod repo update master更新本地的索引库,然后再次尝试pod install。
  • Q: 编译时出现错误:xxx.nib This target might include its own product,或在引用头文件时一直找不到。
  • A: 在podfile中添加use_frameworks!改变引用方式,添加后导入方式也要变,例如将 #import"SVProgressHUD.h" 改为 #import <SVProgressHUD/SVProgressHUD.h>。
  • Q: 我设置了一些ui参数,但实际显示和设置有出入?
  • A: 请在设置各种ui参数后再调用setKeyBoardView方法。

()