iOS仿支付宝车牌号码输入键盘

本文介绍如何仿照支付宝实现一个自定义的车牌号码输入键盘,通过使用自定义视图替代系统输入法,提供更加友好的用户体验。详细讲述了自定义键盘的布局、事件处理和与输入框的交互,包括布局设计、按钮点击事件、代理方法等,并提供了完整的代码示例。
摘要由CSDN通过智能技术生成

点击上方“iOS开发”,选择“置顶公众号”

关键时刻,第一时间送达!


最近由于项目需求,需要录入车牌号码,诸多限制条件要判断车牌号码的合理性,最后看见支付宝的车牌号码输入键盘,决定自己写一个


考虑过用textfield的inputview来替换,但是本人总感觉会有坑在里面,所以最后决定用自定义的view来做一个 只要做一个简单的弹出动画即可实现inpuview一样的效果,创建文件都会的 我就直接上代码了


#import <UIKit/UIKit.h>

//键盘view的代理,用来监控键盘输入

@protocol LYPlateKeyBoardViewDelegate <NSObject>

//点击键盘上的按钮

- (void)clickWithString:(NSString *)string;

//点击删除按钮

- (void)deleteBtnClick;

@end

@interface LYPlateKeyBoardView : UIView

@property (nonatomic, weak) id<LYPlateKeyBoardViewDelegate> delegate;

//公共方法 - 字符串已经删除完毕

- (void)deleteEnd;

@end


在这里用的代理方法相信大家都会看懂,我就不用多做解释了


.m 文件


#define kWidth  self.frame.size.width

#define kHeight self.frame.size.height

#define HEXCOLOR(hex, alp) [UIColor colorWithRed:((float)((hex & 0xFF0000) >> 16)) / 255.0 green:((float)((hex & 0xFF00) >> 8)) / 255.0 blue:((float)(hex & 0xFF)) / 255.0 alpha:alp]

#import "LYPlateKeyBoardView.h"

@interface LYPlateKeyBoardView()<UIGestureRecognizerDelegate>

{

    UIView *_backView1; //第一个view

    UIView *_backView2; //第二个view

//    UIView *_bottomView;

    UIButton *_btn;

}

@property (nonatomic, strong) NSArray *array1; //省市简写数组

@property (nonatomic, strong) NSArray *array2; //车牌号码字母数字数组

@end


构思时想用一个view来切换数组的方式来切换显示的不同内容,发现两个数组以及view上布局有点让人头疼,就用了2个view来布局,只要根据输入的字符来隐藏其中一个view


@implementation LYPlateKeyBoardView

- (NSArray *)array1 {

    if (!_array1) {

        _array1 = @[@"京",@"津",@"渝",@"沪",@"冀",@"晋",@"辽",@"吉",@"黑",@"苏",@"浙",@"皖",@"闽",@"赣",@"鲁",@"豫",@"鄂",@"湘",@"粤",@"琼",@"川",@"贵",@"云",@"陕",@"甘",@"青",@"蒙",@"桂",@"宁",@"新",@"",@"藏",@"使",@"领",@"警",@"学",@"港",@"澳",@""];

    }

    return _array1;

}

- (NSArray *)array2 {

    if (!_array2) {

        _array2 = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0",@"Q",@"W",@"E",@"R",@"T",@"Y",@"U",@"I",@"O",@"P",@"A",@"S",@"D",@"F",@"G",@"H",@"J",@"K",@"L",@"",@"Z",@"X",@"C",@"V",@"B",@"N",@"M",@""];

    }

    return _array2;

}


这里先懒加载两个数组

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值