废话不多说 直接上代码好了 简单粗暴!
#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