一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - iOS 生成圖片驗證碼(實用功能)

iOS 生成圖片驗證碼(實用功能)

2021-03-08 15:09Three_Zhang IOS

這篇文章主要介紹了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.隨機生成驗證碼

?
1
2
3
4
5
6
7
8
9
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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是隨便畫幾條細線

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.調用方法及回調

?
1
2
3
4
public func refreshCode(callBack: @escaping (_ str: NSString) -> ()) {
    initCodeView()
    callBack(codeStr)
  }

6.效果圖

iOS 生成圖片驗證碼(實用功能)

7.源碼地址

以上所述是小編給大家介紹的iOS 生成圖片驗證碼(實用功能),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://blog.csdn.net/three_zhang/article/details/60577916

延伸 · 閱讀

精彩推薦
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
主站蜘蛛池模板: 大ji吧快给我别停受不了视频 | 日本免费的一级绿象 | 久久伊人久久 | 久久精品熟女亚洲AV国产 | 国产精品美女福利视频免费专区 | 日韩国产成人资源精品视频 | 日韩精品免费一级视频 | 久久久久久久99精品免费观看 | 亚洲国产美女精品久久 | 四虎影视永久免费视频观看 | 色婷婷激婷婷深爱五月老司机 | 51xtv成人影院 | 久久精品观看 | 999任你躁在线精品免费不卡 | 日本免费不卡在线一区二区三区 | 福利入口在线观看 | 欧美国产视频 | 亚洲福利电影一区二区? | 欧美日本一道高清免费3区 欧美人做人爱a全程免费 | 亚洲福利一区二区三区 | 国产一卡二卡3卡4卡四卡在线视频 | 女暴露狂校园裸露小说 | 操岳母逼小说 | www.尤物在线| 潘金莲西门庆一级淫片aaaaaa | 欧美日韩一区二区三区在线播放 | 国产在线极品 | 国产精品久久久久久网站 | 范冰冰好紧好滑好湿 | 国产精品香蕉 | 色婷婷综合缴情综六月 | 古装一级无遮挡毛片免费观看 | 久久aa毛片免费播放嗯啊 | 饭冈加奈子乳喷cead144 | 欧美一区二区三区四区五区六区 | 久久综合给会久久狠狠狠 | av中文字幕网免费观看 | 男人天堂影院 | 高清在线免费 | 国产亚洲视频网站 | 三极片在线观看 |