iOS每日一记之———————————————密码输入工具 InputPasswordView

废话不多说 直接上代码好了  简单粗暴!

#import "InputPasswordView.h"
#import "BaseFunction.h"

@interface InputPasswordView () <UITextFieldDelegate> {
    NSMutableArray *_psdChars;
    NSMutableArray *_psdBlackPoints;
    UITextField *_psdTextField;
}

@end

@implementation InputPasswordView

- (instancetype) initWithFrame:(CGRect)frame passwordNum:(NSUInteger)passwordNum {
    self = [super initWithFrame:frame];
    if(self) {
        self.frame = frame;
        self.backgroundColor = [UIColor whiteColor];
        [BaseFunction setCornerRadius:3.0 view:self];
        [BaseFunction setBorderWidth:0.5 color:ColorWithRGB(204, 204, 204) view:self];
        _passwordNum = passwordNum;
        _psdChars = [NSMutableArray arrayWithCapacity:_passwordNum];
        _psdBlackPoints = [NSMutableArray arrayWithCapacity:_passwordNum];
        [self initialize];
    }
    return self;
}

- (void) initialize {
    for(NSUInteger i = 0 ; i < _passwordNum ; i++) {
        //密码支付黑点占位图
        NSUInteger blackPointX = CGRectGetWidth(self.frame) / (_passwordNum * 2) - 5 / 2 + i * CGRectGetWidth(self.frame) / _passwordNum;
        NSUInteger pointWidth = 8;
        UIImageView *blackPoint = [[UIImageView alloc] initWithFrame:CGRectMake(blackPointX, (CGRectGetHeight(self.frame) - 5) / 2, pointWidth, pointWidth)];
        blackPoint.backgroundColor = [UIColor blackColor];
        [BaseFunction setCornerRadius:pointWidth / 2 view:blackPoint];
        [self addSubview:blackPoint];
        blackPoint.hidden = YES;
        [_psdBlackPoints addObject:blackPoint];
        
        //分割线
        if(i != _passwordNum - 1) {
            NSUInteger verticalLineX = (CGRectGetWidth(self.frame) / _passwordNum) * (i + 1);
            UIView *verticalLine = [[UIView alloc] initWithFrame:CGRectMake(verticalLineX, 0, 0.5, CGRectGetHeight(self.frame))];
            verticalLine.backgroundColor = ColorWithRGB(204, 204, 204);
            [self addSubview:verticalLine];
        }
    }
    
    _psdTextField = [[UITextField alloc] initWithFrame:CGRectZero];
    _psdTextField.keyboardType = UIKeyboardTypeNumberPad;
    _psdTextField.delegate = self;
    [self addSubview:_psdTextField];
    [_psdTextField becomeFirstResponder];
}

- (NSString *) getPassword {
    return nil;
}

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
    
    return NO;
}

@end

//下面俩个是baseFunction下面的方法

/**
 *    设置view圆角
 *
 *    @param     cornerRadius     圆角大小
 *    @param     view
 */
+ (void)setCornerRadius:(float)cornerRadius view:(UIView *)view {
    view.layer.cornerRadius = cornerRadius;
    view.layer.masksToBounds = YES;
}
/**
 *    设置view边框
 *
 *    @param     width     边框宽度
 *    @param     color     边框颜色
 *    @param     view
 */
+ (void)setBorderWidth:(float)width color:(UIColor *)color view:(UIView *)view {
    view.layer.borderColor = color.CGColor;
    view.layer.borderWidth = width;
}



.h 里面

#import <UIKit/UIKit.h>

@interface InputPasswordView : UIView

- (instancetype) initWithFrame:(CGRect)frame passwordNum : (NSUInteger) passwordNum;

//密码的位数
@property (assign,nonatomic) NSUInteger passwordNum;

//获取输入的密码
- (NSString *) getPassword;

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值