美文网首页微信、支付宝支付iOS DeveloperiOS
iOS仿支付宝、微信支付键盘输入

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

作者: 小猪也浪漫 | 来源:发表于2016-10-17 19:52 被阅读885次

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、是不是很💖动,赶快新建一个工程试试吧~

相关文章

网友评论

    本文标题:iOS仿支付宝、微信支付键盘输入

    本文链接:https://www.haomeiwen.com/subject/nyrzyttx.html