IOS开发中随机图片验证码的封装

来源:爱站网时间:2020-08-21编辑:网友分享
在IOS的开发中,为了防止恶意获取短信验证码,需要在注册时进行图像验证,那么IOS开发中随机图片验证码的封装,大家都了解吗?爱站技术频道小编为你细细道来。

在IOS的开发中,为了防止恶意获取短信验证码,需要在注册时进行图像验证,那么IOS开发中随机图片验证码的封装,大家都了解吗?爱站技术频道小编为你细细道来。

图片验证码封装思路:

第一眼看到图片验证码,可能会觉得图片验证码是由 UIImage 实现的,但事实上明显不是,这里简单说下图片验证码封装思路。

  1. 首先要有一个数组,里面包含 1-9、a-z 这些字符
  2. 在 UIView 上显示这些字符
  3. 同时在 UIView 上绘制干扰线

效果图

图片验证码效果图

用法

  _testView = [[NNValidationView alloc] initWithFrame:CGRectMake((self.view.frame.size.width - 100) / 2, 200, 100, 40) andCharCount:4 andLineCount:4];
  [self.view addSubview:_testView];

以上两行代码便可以实现图片验证码,其中 charCount 和 lineCount 分别指显示的字符串数量以及干扰线的数量。

另外我们还需要知道图片验证码上的字符串,可以用下边这个 block 获取:

 __weak typeof(self) weakSelf = self;
  /// 返回验证码数字
  _testView.changeValidationCodeBlock = ^(void){
    NSLog(@"验证码被点击了:%@", weakSelf.testView.charString);
  };

打印效果如下

获取验证码数字

核心代码

#pragma mark - 绘制界面
- (void)drawRect:(CGRect)rect {
  [super drawRect:rect];
  self.backgroundColor = NNRandomColor;
  CGFloat rectWidth = rect.size.width;
  CGFloat rectHeight = rect.size.height;
  CGFloat pointX, pointY;
  
  NSString *text = [NSString stringWithFormat:@"%@",self.charString];
  NSInteger charWidth = rectWidth / text.length - 15;
  NSInteger charHeight = rectHeight - 25;
  
  // 依次绘制文字
  for (NSInteger i = 0; i 

以上就是爱站技术频道小编为大家分享的IOS开发中随机图片验证码的封装,如果你平时不爱学习的话,可以选择一下为你积累知识的平台。

上一篇:KVO实现了自定义文件复制进度的效果

下一篇:IOS实现相册多选图片上传功能

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载