停车王车牌号码专用键盘 VehicleKeyboard - iOS
概述
- 停车王车牌号码专用键盘 iOS 版,支持新能源、武警、领事馆等多项专用格式车牌。
- 代码用 Swift 编写,已支持 OC 调用,可以绑定到 GridInput 以使用网格输入或绑定到 UITextField 以使用文本字段输入,键盘的用法与系统键盘类似。
示例需要先运行 pod install 命令
如何使用
使用 CocoaPods 导入
在 Podfile 中添加:
use_frameworks!
pod 'VehicleKeyboard-swift',
然后运行 pod install 命令。
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
是停车王品牌的各端产品线的基础组件,专为提高中国车牌号码输入速度而定制开发的专用键盘组件,包括以下三个项目:
-
VehicleKeyboard-Android
Android项目,为Android客户端定制包括输入组件、键盘组件及相关控制逻辑实现; -
VehicleKeyboard-iOS
iOS客户端项目,为iOS客户端定制包括输入组件、键盘组件及相关控制逻辑实现; -
VehicleKeyboard-JS
JavaScript项目,为H5页面定制,包括Web、微信、支付宝等,同样包括输入组件、键盘组件及相关控制逻辑实现 -
VehicleKeyboard-Android GitHub项目主页: https://github.com/parkingwang/vehicle-keyboard-android
-
VehicleKeyboard-Android OSChina项目主页: https://gitee.com/iRainIoT/vehicle-keyboard-android
-
VehicleKeyboard-iOS GitHub项目主页: https://github.com/parkingwang/vehicle-keyboard-ios
-
VehicleKeyboard-iOS OSChina项目主页: https://gitee.com/iRainIoT/vehicle-keyboard-ios
-
VehicleKeyboard-JS GitHub项目主页: https://github.com/parkingwang/vehicle-keyboard-js
-
VehicleKeyboard-JS OSChina项目主页: https://gitee.com/iRainIoT/vehicle-keyboard-js
可能的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或是引用头文件时一直not find
- A: 在podfile中加上use_frameworks!变更引用方式,添加后将导入方式改为例如 #import"SVProgressHUD.h" 改为 #import <SVProgressHUD/SVProgressHUD.h>。
- Q: 我设置了一些ui参数,但实际显示和设置有一些出入?
- A: 请在设置各种ui参数后调用setKeyBoardView方法。