iOS仿支付宝、微信支付键盘输入

1、iOS仿支付宝、微信支付键盘输入,废话不多说,直接上图:

iOS仿支付宝、微信支付键盘输入.png

2、一言不合就撸代码:

代码1
    _moneyTextField = [[UITextField alloc] initWithFrame:CGRectMake(10, 80, kScreen_Width - 20, 40)];
    _moneyTextField.placeholder = @"¥请输入充值金额";
    _moneyTextField.keyboardType = UIKeyboardTypeDecimalPad;
    _moneyTextField.textAlignment = NSTextAlignmentCenter;
    _moneyTextField.font = [UIFont systemFontOfSize:20];
    _moneyTextField.delegate = self;
    [self.view addSubview:_moneyTextField];
代码2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *text             = _moneyTextField.text;
    NSString *decimalSeperator = @".";
    NSCharacterSet *charSet    = nil;
    NSString *numberChars      = @"0123456789";
    
    if ([string isEqualToString:decimalSeperator] && [text length] == 0) {
        return NO;
    }
    
    NSRange decimalRange = [text rangeOfString:decimalSeperator];
    BOOL isDecimalNumber = (decimalRange.location != NSNotFound);
    if (isDecimalNumber) {
        charSet = [NSCharacterSet characterSetWithCharactersInString:numberChars];
        if ([string rangeOfString:decimalSeperator].location != NSNotFound) {
            return NO;
        }
    }
    else {
        numberChars = [numberChars stringByAppendingString:decimalSeperator];
        charSet = [NSCharacterSet characterSetWithCharactersInString:numberChars];
    }
    
    NSCharacterSet *invertedCharSet = [charSet invertedSet];
    NSString *trimmedString = [string stringByTrimmingCharactersInSet:invertedCharSet];
    text = [text stringByReplacingCharactersInRange:range withString:trimmedString];
    
    if (isDecimalNumber) {
        NSArray *arr = [text componentsSeparatedByString:decimalSeperator];
        if ([arr count] == 2) {
            if ([arr[1] length] > 2) {
                return NO;
            }
        }
    }
    
    textField.text = text;
    return NO;
}

3、是不是很💖动,赶快新建一个工程试试吧~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前段时间公司需要用到类似支付宝/微信支付的键盘输入界面,于是和同事写了一个,可能代码质量不是很高,但是也实现了功能...
    cd5e2b81487d阅读 8,125评论 3 10
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,079评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,194评论 4 61
  • 山城纤雨洗沙洲, 独立江心望海楼。 浊浪滔天声撼岳, 洪崖千载汇清流。
    溪风零落阅读 3,555评论 0 2
  • 锲子 伙伴们严肃的神态…… 钟表滴滴答答的响声…… 夏天不知从何而来的冷汗…… 背后一直紧紧盯着我的眼睛…… 正篇...
    吃火柴的小姑娘阅读 1,235评论 0 1