亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > iOS > 正文

iOS生成圖片數(shù)字字母驗證效果

2019-10-21 18:39:18
字體:
供稿:網(wǎng)友

本文實例為大家分享了iOS生成圖片數(shù)字字母驗證的具體代碼,供大家參考,具體內(nèi)容如下

直接上代碼,注釋很詳細

#import "CaptchaView.h"#define kRandomColor [UIColor colorWithRed:arc4random() % 256 / 256.0 green:arc4random() % 256 / 256.0 blue:arc4random() % 256 / 256.0 alpha:1.0];//#define kRandomColor [UIColor grayColor];#define kLineCount 6#define kLineWidth 1.0#define kCharCount 4#define kFontSize [UIFont systemFontOfSize:arc4random() % 5 + 15]@implementation CaptchaView@synthesize changeString,changeArray;- (instancetype)initWithFrame:(CGRect)frame{  if (self = [super initWithFrame:frame]) {    self.layer.cornerRadius = 5.0; //設(shè)置layer圓角半徑    self.layer.masksToBounds = YES; //隱藏邊界    self.backgroundColor = kRandomColor;    //    [UIColor grayColor]    //顯示一個隨機驗證碼    [self changeCaptcha];  }  return self;}#pragma mark 更換驗證碼,得到更換的驗證碼的字符串-(void)changeCaptcha{  //<一>從字符數(shù)組中隨機抽取相應(yīng)數(shù)量的字符,組成驗證碼字符串  //數(shù)組中存放的是全部可選的字符,可以是字母,也可以是中文  self.changeArray = [[NSArray alloc] initWithObjects:@"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",nil];  //如果能確定最大需要的容量,使用initWithCapacity:來設(shè)置,好處是當元素個數(shù)不超過容量時,添加元素不需要重新分配內(nèi)存  NSMutableString *getStr = [[NSMutableString alloc] initWithCapacity:kCharCount];  self.changeString = [[NSMutableString alloc] initWithCapacity:kCharCount];  //隨機從數(shù)組中選取需要個數(shù)的字符,然后拼接為一個字符串  for(int i = 0; i < kCharCount; i++)  {    NSInteger index = arc4random() % ([self.changeArray count] - 1);    getStr = [self.changeArray objectAtIndex:index];    self.changeString = (NSMutableString *)[self.changeString stringByAppendingString:getStr];  }}#pragma mark 點擊view時調(diào)用,因為當前類自身就是UIView,點擊更換驗證碼可以直接寫到這個方法中,不用再額外添加手勢-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  //點擊界面,切換驗證碼  [self changeCaptcha];  //setNeedsDisplay調(diào)用drawRect方法來實現(xiàn)view的繪制  [self setNeedsDisplay];}#pragma mark 繪制界面(1.UIView初始化后自動調(diào)用; 2.調(diào)用setNeedsDisplay方法時會自動調(diào)用)- (void)drawRect:(CGRect)rect {  // 重寫父類方法,首先要調(diào)用父類的方法  [super drawRect:rect];  //設(shè)置隨機背景顏色  self.backgroundColor = kRandomColor;  //獲得要顯示驗證碼字符串,根據(jù)長度,計算每個字符顯示的大概位置  NSString *text = [NSString stringWithFormat:@"%@",self.changeString];  CGSize cSize = [@"S" sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20.0]}];  int width = rect.size.width / text.length - cSize.width;  int height = rect.size.height - cSize.height;  CGPoint point;  //依次繪制每一個字符,可以設(shè)置顯示的每個字符的字體大小、顏色、樣式等  float pX, pY;  for (int i = 0; i < text.length; i++)  {    pX = arc4random() % width + rect.size.width / text.length * i;    pY = arc4random() % height;    point = CGPointMake(pX, pY);    unichar c = [text characterAtIndex:i];    NSString *textC = [NSString stringWithFormat:@"%C", c];    [textC drawAtPoint:point withAttributes:@{NSFontAttributeName:kFontSize}];  }    //調(diào)用drawRect:之前,系統(tǒng)會向棧中壓入一個CGContextRef,調(diào)用UIGraphicsGetCurrentContext()會取棧頂?shù)腃GContextRef    CGContextRef context = UIGraphicsGetCurrentContext();    //設(shè)置畫線寬度    CGContextSetLineWidth(context, kLineWidth);    //繪制干擾的彩色直線    for(int i = 0; i < kLineCount; i++)    {      //設(shè)置線的隨機顏色      UIColor *color = kRandomColor;      CGContextSetStrokeColorWithColor(context, [color CGColor]);      //設(shè)置線的起點      pX = arc4random() % (int)rect.size.width;      pY = arc4random() % (int)rect.size.height;      CGContextMoveToPoint(context, pX, pY);      //設(shè)置線終點      pX = arc4random() % (int)rect.size.width;      pY = arc4random() % (int)rect.size.height;      CGContextAddLineToPoint(context, pX, pY);      //畫線      CGContextStrokePath(context);    }}@end

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
亚洲国产精品传媒在线观看| 在线观看国产91| 免费的av网址| 欧美大片黄色| 自拍网站在线观看| 国产日韩欧美视频在线观看| 日韩欧美一区二区免费| 欧美啪啪一区| 久久国产乱子伦精品| 亚洲黄色小视频在线观看| 亚洲精品色午夜无码专区日韩| 亚洲黄色片免费| 久久综合色88| 亚洲精品中文字幕女同| 香港成人在线视频| 国产精品亚洲片夜色在线| 国产精品成人免费电影| а天堂中文在线官网| 欧美mv日韩mv国产网站| 久久五月精品中文字幕| 国产精品一区电影| 一级毛片美女欧洲| 国产高清在线精品一区二区三区| 亚洲资源av| 精品一区二区三区在线观看l| 久久一级黄色片| 日日噜噜噜夜夜爽爽| 亚洲国产精彩中文乱码av| 国产99精品| 国产目拍亚洲精品99久久精品| 内射后入在线观看一区| 亚洲图片视频小说| 少妇av一区二区| 天天爽夜夜爽人人爽| 国产精品网站入口| 国产在视频线精品视频| 中文字幕一区二区三区四区| 中文字幕在线播放不卡| 婷婷国产在线综合| 日韩免费视频一区二区| 制服丝袜一区二区三区| 亚洲国产精品一区二区久久| 久久久免费高清视频| 亚洲午夜未删减在线观看| 妞干网这里只有精品| 美国一级片在线观看| 夜鲁夜鲁夜鲁视频在线播放| 色av中文字幕| 免费看欧美美女黄的网站| 亚洲最新合集| 黄页网站在线观看视频| 性色av一区二区怡红| 亚洲欧美电影| 美日韩一区二区三区| 国产精品96久久久久久又黄又硬| 免费av一区二区三区四区| 免费成人美女在线观看| 欧美日韩不卡在线| 天堂在线中文视频| 亚洲影院中文字幕| 91香蕉视频导航| 亚洲国产成人在线观看| 97国产精品人人爽人人做| 日本男人天堂网| 欧美日韩在线一二三| 高清福利在线观看| 欧美 亚欧 日韩视频在线| 欧美一区二区三区男人的天堂| 欧美熟妇激情一区二区三区| 一区二区精品在线观看| 一级片黄色免费| 精品国产乱码久久久久久蜜臀网站| 国产xxx在线观看| 国产免费电影网站入口| 大荫蒂欧美视频另类xxxx| 欧美成人精品xxx| 亚洲国产精品综合久久久| 婷婷丁香久久| 久久久久国产精品午夜一区| 久久久999免费视频| 2024最新电影在线免费观看| 欧洲精品码一区二区三区免费看| 国产专区在线播放| 日韩av影片在线观看| 国内自拍视频网| 日本女人一区二区三区| 欧美在线观看在线观看| 中文字幕在线中文字幕日亚韩一区| 国产精品午夜春色av| 九九国产精品视频| 国产亚洲精品美女久久久久| 成年网站在线免费观看| 国产精品免费区二区三区观看| 一区二区三区视频国产日韩| 免费av成人在线| 日本亚洲天堂网| 亚洲精品中文字幕成人片| 色欲综合视频天天天| 96视频在线观看欧美| 一区二区三区成人在线视频| aaaaa黄色片| 亚洲国模精品私拍| 免费xxxx性欧美18vr| 欧美日韩国产精品一区二区三区四区| 国产精品zjzjzj在线观看| av成人在线电影| 亚洲日本三级| 欧美性猛交xxxxbbb| 免费看av的网址| 亚洲动漫在线观看| 亚洲欧美日产图| 日本少妇做爰全过程毛片| 久久一区二区三区av| 欧美理论影院| 香蕉av福利精品导航| 日本道在线视频| 91网站免费观看| 亚洲精品写真福利| 亚洲欧美综合网| 丝袜诱惑一区二区| 精品人妻伦一二三区久| 国产免费观看久久黄| 久久精品一区二区三区四区五区| 国产 欧美 自拍| 最近中文字幕大全中文字幕免费| 亚洲一级二级片| 一本色道久久综合熟妇| 国产精品欧美久久久久一区二区| 中文字幕 在线观看| 国产91色蝌蚪视频| 色婷婷综合网站| 久久国产福利| 精品国产综合久久| 欧美综合激情网| 亚洲欧美经典视频| 亚洲av综合色区| 亚洲黄色免费在线观看| 一区二区免费av| 中文字幕9999| 99国内精品久久| 色综合一个色综合| 欧美精品aⅴ在线视频| 欧美国产先锋| 无码人妻一区二区三区一| 草逼视频免费看| 精品福利在线导航| 欧美日韩激情一区二区三区| 91精品综合久久久久久| 国产精品白丝jk喷水视频一区| 日本一区二区高清视频| 在线观看av网站永久| 在线国产情侣| 一级片黄色免费| 成人精品福利视频| 国产黄色录像视频| 五月激情丁香网| 欧美欧美欧美欧美| 国产一区免费看| 国产日韩久久久| 免费午夜一级| 粉嫩aⅴ一区二区三区四区| 看电影就来5566av视频在线播放| 久久精品人人做| www.youjizz.com亚洲| 久久网站免费视频| 久久夜精品va视频免费观看| 中文字幕日韩免费视频| 国产高清在线a视频大全| 亚洲伦理久久| 91嫩草国产丨精品入口麻豆| 亚洲国产精品一区二区久久恐怖片| 亚洲激情成人网| 99re热视频在线| 久热久精久品这里在线观看| 国产一区二区按摩在线观看| 国产91精品黑色丝袜高跟鞋| 四虎国产精品成人永久免费影视| 午夜电影一区二区| 奇米影视第四狠狠777| 国产黄色一区二区| 精品无码人妻少妇久久久久久| 久久丫精品久久丫| 国产精品观看| 国产精品免费看一区二区三区| 亚洲精品成人一区| 无码人妻一区二区三区免费n鬼沢| 久久色精品视频| 久久精品国产精品亚洲毛片| 日韩成人一区二区| 永久免费观看片现看| 99re66热这里只有精品8| 久久66热偷产精品| 日韩精品成人在线观看| www.色香蕉| 国产一级视频在线播放| 3d成人h动漫网站入口| 久久久久观看| 成a人片国产精品| av毛片精品| 在线观看成人av| 粉嫩蜜臀av国产精品网站| 四虎884aa成人精品| 97视频精彩视频在线观看| 91久热免费在线视频| www.91av...| 最好看的中文字幕久久| 在线看片日韩| 日韩欧美网址| 国产成人免费视频网站| 91理论片午午论夜理片久久| 色婷婷综合久久久久| 亚洲第一精品在线观看| 国产激情在线观看视频| 久久国产精品99久久久久久丝袜| 自己做鸭怎么接单寻找客源| 日本福利在线观看| 欧美成人短视频| 91av视频在线免费观看| 国产影视一区| 亚洲AV成人无码网站天堂久久| 777精品视频| 九色国产蝌蚪| 成人在线中文| 亚洲激情中文1区| 久cao在线| 91午夜在线观看| 亚洲www在线| 亚洲天堂日韩电影| 在线电影一区二区| 91黄视频在线| 欧美在线性视频| 青青草精品视频在线| 国产精品久久久久一区二区国产| 日本不卡一区二区三区四区| 天堂а√在线中文在线| 无码人妻久久一区二区三区不卡| 国产亚洲一区字幕| www污污网站在线看| 免费的一级黄色片| 欧美老熟妇乱大交xxxxx| 成人资源www网在线最新版| 国产乱人伦精品一区二区在线观看| 国产探花在线播放| 欧美天天综合色影久久精品| 久久亚洲精品国产亚洲老地址| 成人免费淫片95视频观看网站| chinese偷拍一区二区三区| 久久精品一区二区三区不卡免费视频| 欧美日韩不卡视频| 国产麻豆精品在线| 国产欧美日韩在线视频| 蜜桃网站在线观看| 亚洲精品第一国产综合野| 性欧美长视频免费观看不卡| 热re久久精品国产99热| 蜜桃久久av| 久久精品国产福利| 免费国产羞羞网站视频| 日韩在线观看成人| 国产一区一区| 黄页网站一区| 电影久久久久久| 99久久久成人国产精品| 色悠悠在线视频| 日韩av理论片| 精品国产乱码久久久久久1区2匹| 欧亚精品中文字幕| 亚洲二区三区不卡| 伊人成综合网站| 国产精品一区二区免费| 欧美日韩中文国产一区发布| 精品一区二区在线免费观看| 国产欧美一区二区三区网站| 免费成人av网站| 男女视频在线观看| 神马影视一区二区| 草莓视频丝瓜在线观看丝瓜18| 欧美黄色精品| 五月天丁香久久| 在线亚洲国产精品网站| 精品国产一二三四区| √资源天堂中文在线| 国产精品久久久久国产精品日日| 视频小说一区二区| 草莓视频性福宝| 精品免费久久久| 亚洲色无码播放| 国产精品成人在线观看| 亚洲福利一区二区| 成年网站在线在免费播放| 成人aaaa| 黄色av免费在线观看| 日产中文字幕在线精品一区| 亚洲欧美日韩直播| 亚洲 欧美 激情 小说 另类| ww久久综合久中文字幕| 久久精品国产露脸对白| 成人h在线观看| 极品尤物久久久av免费看| 精品国产亚洲一区二区三区大结局| 国产河南妇女毛片精品久久久| 精东影业在线观看| 亚洲激情一区| 成人免费网站www网站高清| 国产精品久久| 欧美高清性xxxxhd| 亚洲福利久久| 蜜桃a∨噜噜一区二区三区| 芒果视频成人app| 黄页网站在线观看免费| julia京香一区二区三区| 四虎www成人影院观看| 成人激情视频在线观看| www.18av.com| 91九色在线视频| 久久久久久久久久久久久久| 青青青国产在线视频| www黄色在线观看| 182tv在线播放| 另类国产ts人妖高潮视频| 在线精品视频免费观看| 五月天丁香激情| 日韩av无码一区二区三区不卡| 黄色网址中文字幕| 国产电影精品久久禁18| 成年免费视频黄网站在线观看| xvideos亚洲人网站| 欧美日韩在线观看一区二区|