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
相关文章:
建站之星微信建站一键生成小程序+多端营销系统
如何快速搭建高效简练网站?
建站主机类型有哪些?如何正确选型
制作宣传网站的软件,小红书可以宣传网站吗?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
西安大型网站制作公司,西安招聘网站最好的是哪个?
定制建站流程解析:需求评估与SEO优化功能开发指南
如何高效利用200m空间完成建站?
nginx修改上传文件大小限制的方法
如何在腾讯云免费申请建站?
如何快速搭建虚拟主机网站?新手必看指南
个人网站制作流程图片大全,个人网站如何注销?
自助网站制作软件,个人如何自助建网站?
宝塔面板如何快速创建新站点?
利用JavaScript实现拖拽改变元素大小
建站主机选购指南与交易推荐:核心配置解析
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
大连 网站制作,大连天途有线官网?
如何快速完成中国万网建站详细流程?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
设计网站制作公司有哪些,制作网页教程?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
贸易公司网站制作流程,出口贸易网站设计怎么做?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
如何在IIS7中新建站点?详细步骤解析
平台云上自主建站:模板化设计与智能工具打造高效网站
如何通过免费商城建站系统源码自定义网站主题与功能?
如何选择建站程序?包含哪些必备功能与类型?
高防服务器租用首荐平台,企业级优惠套餐快速部署
如何在Windows环境下新建FTP站点并设置权限?
c++ stringstream用法详解_c++字符串与数字转换利器
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
网站制作网站,深圳做网站哪家比较好?
Python多线程使用规范_线程安全解析【教程】
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
C++如何使用std::optional?(处理可选值)
建站主机选购指南:核心配置与性价比推荐解析
济南网站建设制作公司,室内设计网站一般都有哪些功能?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何在景安云服务器上绑定域名并配置虚拟主机?
如何快速搭建高效WAP手机网站吸引移动用户?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
建站为何优先选择香港服务器?
宝塔建站无法访问?如何排查配置与端口问题?
*请认真填写需求信息,我们会在24小时内与您取得联系。