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 生成图片验证码绘制实例代码
# 利用iOS绘制图片生成随机验证码示例代码
# IOS实现验证码倒计时功能(一)
# iOS获取短信验证码倒计时的两种实现方法
# iOS本地动态生成验证码的方法
# IOS实现验证码倒计时功能(二)
# iOS生成图片数字字母验证效果
# 小编
# 在此
# 给大家
# 几条
# 所述
# 回调
# 给我留言
# 感谢大家
# 实用功能
# 疑问请
# 有任何
# 细线
# textSize
# CGRect
# text
# height
# width
# size
# frame
相关文章:
建站之星×万网:智能建站系统+自助建站平台一键生成
网站制作公司广州有几家,广州尚艺美发学校网站是多少?
建站之星安装路径如何正确选择及配置?
深圳网站制作平台,深圳市做网站好的公司有哪些?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在Golang中处理模块冲突_解决依赖版本不兼容问题
建站之星安装后如何配置SEO及设计样式?
小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
如何在橙子建站中快速调整背景颜色?
Java解压缩zip - 解压缩多个文件或文件夹实例
如何快速配置高效服务器建站软件?
浅析上传头像示例及其注意事项
c# 在高并发场景下,委托和接口调用的性能对比
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
开心动漫网站制作软件下载,十分开心动画为何停播?
C#如何序列化对象为XML XmlSerializer用法
测试制作网站有哪些,测试性取向的权威测试或者网站?
如何配置WinSCP新建站点的密钥验证步骤?
C#如何在一个XML文件中查找并替换文本内容
如何通过VPS搭建网站快速盈利?
建站主机选虚拟主机还是云服务器更好?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
建站主机默认首页配置指南:核心功能与访问路径优化
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
魔方云NAT建站如何实现端口转发?
教程网站设计制作软件,怎么创建自己的一个网站?
营销式网站制作方案,销售哪个网站招聘效果最好?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何在Windows服务器上快速搭建网站?
如何选择美橙互联多站合一建站方案?
定制建站流程解析:需求评估与SEO优化功能开发指南
建站主机选哪种环境更利于SEO优化?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
建站VPS推荐:2025年高性能服务器配置指南
如何批量查询域名的建站时间记录?
如何高效完成自助建站业务培训?
焦点电影公司作品,电影焦点结局是什么?
如何自定义建站之星网站的导航菜单样式?
如何通过.red域名打造高辨识度品牌网站?
如何高效配置香港服务器实现快速建站?
电商平台网站制作流程,电商网站如何制作?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
建站之星Pro快速搭建教程:模板选择与功能配置指南
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
建站之星会员如何解锁更多建站功能?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
*请认真填写需求信息,我们会在24小时内与您取得联系。