iOS 生成图片验证码(实用功能)

 更新时间:2017年03月06日 15:38:38   作者:Three_Zhang  
这篇文章主要介绍了iOS 生成图片验证码功能,此功能非常实用,需要的朋友可以参考下

1.数据源

codeArray = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]

2.随机生成验证码

for index in 0..<4 {
      let i = (Int)(arc4random()) % (codeArray.count-1)
      let str = codeArray[i]
      if index == 0 {
        codeStr = str as NSString
      }else {
        codeStr = "\(codeStr)\(str)" as NSString
      }
    }

3.创建放置验证码的label

for i in 0..<codeStr.length {
      let pxx = arc4random() % UInt32(randWidth)
      let px = CGFloat(pxx) + CGFloat(i)*(self.frame.size.width-3)/CGFloat(codeStr.length)
      let py = arc4random() % UInt32(randHeight)
      let label = UILabel.init(frame: CGRect.init(x: px + 3, y: CGFloat(py), width: textSize.width, height: textSize.height))
      label.text = String.init(format: "%C", codeStr.character(at: i))
      label.font = UIFont.systemFont(ofSize: 20)
      if (isRotation == true) {
        let a = arc4random() % UInt32(60)
        let r = Double(a)-30
        label.transform = CGAffineTransform.init(rotationAngle: CGFloat(r*M_PI)/180)
      }
      bgView.addSubview(label)
    }

4.底部view是随便画几条细线

for _ in 0...9 {
      let path = UIBezierPath.init()
      let pX = arc4random() % UInt32(self.frame.width)
      let pY = arc4random() % UInt32(self.frame.height)
      path.move(to: CGPoint.init(x: CGFloat(pX), y: CGFloat(pY)))
      let ptX = arc4random() % UInt32(self.frame.width)
      let ptY = arc4random() % UInt32(self.frame.height)
      path.addLine(to: CGPoint.init(x: CGFloat(ptX), y: CGFloat(ptY)))
      let layer = CAShapeLayer.init()
      layer.strokeColor = UIColor.getRandomColor(withAlpha: 0.2).cgColor//layer的边框色
      layer.lineWidth = 1.0
      layer.strokeEnd = 1
      layer.fillColor = UIColor.clear.cgColor
      layer.path = path.cgPath
      bgView.layer.addSublayer(layer)
    }

5.调用方法及回调

public func refreshCode(callBack: @escaping (_ str: NSString) -> ()) {
    initCodeView()
    callBack(codeStr)
  }

6.效果图

7.源码地址

以上所述是小编给大家介绍的iOS 生成图片验证码(实用功能),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS开发蓝牙技术应用增加无线连接功能

    iOS开发蓝牙技术应用增加无线连接功能

    这篇文章主要为大家介绍了iOS开发蓝牙技术应用增加无线连接功能示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 3分钟实现iOS语言本地化/国际化(图文教程)

    3分钟实现iOS语言本地化/国际化(图文教程)

    这篇文章主要介绍了3分钟实现iOS语言本地化/国际化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • IOS简单实现瀑布流UICollectionView

    IOS简单实现瀑布流UICollectionView

    这篇文章主要为大家介绍了IOS简单实现瀑布流UICollectionView的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • iOS获取手机通讯录方式方法(最新)

    iOS获取手机通讯录方式方法(最新)

    本篇文章主要介绍了iOS获取手机通讯录方式方法(最新),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • iOS中NSObject的两种含义:类和协议详解

    iOS中NSObject的两种含义:类和协议详解

    这篇文章主要给大家介绍了关于iOS中NSObject的两种含义:类和协议的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • IOS网络请求之NSURLSession使用详解

    IOS网络请求之NSURLSession使用详解

    这篇文章主要介绍了IOS网络请求之NSURLSession使用详解,今天使用NSURLConnection分别实现了get、post、表单提交、文件上传、文件下载,有兴趣的可以了解一下。
    2017-02-02
  • iOS中的UISearchBar搜索框组件基础使用指南

    iOS中的UISearchBar搜索框组件基础使用指南

    iOS开发套件中自带的UISearchBar搜索框我们平时经常可以用到,我们可以在默认的基础上修改文字颜色、背景颜色和背景图片等,这里我们稍微总结一下iOS中的UISearchBar搜索框组件基础使用指南.
    2016-05-05
  • 浅谈iOS解析HTMl标签以及开发中的一些坑

    浅谈iOS解析HTMl标签以及开发中的一些坑

    这篇文章主要介绍了浅谈iOS解析HTMl标签以及开发中的一些坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 详解如何使用ReactiveObjC

    详解如何使用ReactiveObjC

    RAC 指的就是 RactiveCocoa ,是 Github 的一个开源框架,能够通过信号提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjC(OC) 和 ReactiveSwift(swift)。本文将详细介绍如何使用ReactiveObjC。
    2021-06-06
  • iOS ScrollView实现自动布局的方法(适用Swift 3.0 )

    iOS ScrollView实现自动布局的方法(适用Swift 3.0 )

    传说中有一个美工ios开发者在遇到这个问题的时候特意跑到苹果总部去咨询如何对scrollview进行自动布局。当然大家不用去了,下面这篇文章就来给大家介绍关于iOS ScrollView实现自动布局的方法,文中的语法同样也适用Swift 3.0 ,需要的朋友可以参考下。
    2017-12-12

最新评论