UITextField 更新

1
最近项目中需要集成 微信 支付宝 支付 签名什么的都是后台做 所以对于前段的我们来说容易了很多了 但是在实现支付逻辑的时候 公司的规定是 最小充值金额为0.1元 在界面上用的是UItextFile 那么问题就来了 问了度娘 看了很多同事写的 都感觉 很麻烦 不哈理解 于是自己写了个 感觉容易理解 就贴出来

2 使用的就是UItextFile代理里的这个方法

@protocol UITextFieldDelegate <NSObject>

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;   // return NO to not change text

3 决解方法 就是在项目中

//设置最小金额为0.1元
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    NSString *str = [NSString stringWithFormat:@"%@%@",textField.text,string];
    // 这个地方 你自己想保留几位 小数就取几位 这里的思路大家 应该都明白 (一个数-需要保留的位数数 如果大于0.0 那么肯定超过了 你设置的最小金额   12.0098 -12.00>0.0)
    NSString * str1 = [NSString stringWithFormat:@"%.1f",[str floatValue]];

    if ([str floatValue]- [str1 floatValue] > 0.0) {
        return NO;
    }
    if (![Tools isAccuracyBranchNine:str]) {
        return NO;
    }
    //这里限制了 最大 长度 
    if (range.location>8) {
        return NO;
    }

    return YES;
}

//上面方法用到的一个代码块 正则验证 是不是 最多只有一位小数

//最多带一位小数的数字
+ (BOOL)isAccuracyBranchNine:(NSString *)str
{
    //这里是判断是不是nil 
    //if( [self isBlankString: str] ){
    //    return NO;
   // }


    NSString *ZEROTONINE = @"^([0-9]*)+(.[1-9]{0,1})?$";


    NSPredicate *regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", ZEROTONINE];


    if ([regextest evaluateWithObject:str] == YES)
    {
                NSLog(@"是最多最多带一位小数的数字");
        return YES;
    }
    else
    {
                NSLog(@"不是最多最多带一位小数的数字");
        return NO;
    }

}

最后在判断下充值金额 不能为0

4

在iOS 10 中,UITextField新增了textContentType字段,是UITextContentType类型,它是一个枚举,作用是可以指定输入框的类型,以便系统可以分析出用户的语义.是电话类型就建议一些电话,是地址类型就建议一些地址.可以在#import <UIKit/UITextInputTraits.h>文件中,查看textContentType字段,有以下可以选择的类型:

UIKIT_EXTERN UITextContentType const UITextContentTypeName                      NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeNamePrefix                NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeGivenName                 NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeMiddleName                NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeFamilyName                NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeNameSuffix                NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeNickname                  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeJobTitle                  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeOrganizationName          NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeLocation                  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeFullStreetAddress         NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeStreetAddressLine1        NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeStreetAddressLine2        NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeAddressCity               NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeAddressState              NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeAddressCityAndState       NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeSublocality               NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeCountryName               NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypePostalCode                NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeTelephoneNumber           NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeEmailAddress              NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeURL                       NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN UITextContentType const UITextContentTypeCreditCardNumber          NS_AVAILABLE_IOS(10_0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值