国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 系統 > iOS > 正文

iOS生成圖片數字字母驗證效果

2019-10-21 18:39:18
字體:
來源:轉載
供稿:網友

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

直接上代碼,注釋很詳細

#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; //設置layer圓角半徑    self.layer.masksToBounds = YES; //隱藏邊界    self.backgroundColor = kRandomColor;    //    [UIColor grayColor]    //顯示一個隨機驗證碼    [self changeCaptcha];  }  return self;}#pragma mark 更換驗證碼,得到更換的驗證碼的字符串-(void)changeCaptcha{  //<一>從字符數組中隨機抽取相應數量的字符,組成驗證碼字符串  //數組中存放的是全部可選的字符,可以是字母,也可以是中文  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:來設置,好處是當元素個數不超過容量時,添加元素不需要重新分配內存  NSMutableString *getStr = [[NSMutableString alloc] initWithCapacity:kCharCount];  self.changeString = [[NSMutableString alloc] initWithCapacity:kCharCount];  //隨機從數組中選取需要個數的字符,然后拼接為一個字符串  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時調用,因為當前類自身就是UIView,點擊更換驗證碼可以直接寫到這個方法中,不用再額外添加手勢-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{  //點擊界面,切換驗證碼  [self changeCaptcha];  //setNeedsDisplay調用drawRect方法來實現view的繪制  [self setNeedsDisplay];}#pragma mark 繪制界面(1.UIView初始化后自動調用; 2.調用setNeedsDisplay方法時會自動調用)- (void)drawRect:(CGRect)rect {  // 重寫父類方法,首先要調用父類的方法  [super drawRect:rect];  //設置隨機背景顏色  self.backgroundColor = kRandomColor;  //獲得要顯示驗證碼字符串,根據長度,計算每個字符顯示的大概位置  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;  //依次繪制每一個字符,可以設置顯示的每個字符的字體大小、顏色、樣式等  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}];  }    //調用drawRect:之前,系統會向棧中壓入一個CGContextRef,調用UIGraphicsGetCurrentContext()會取棧頂的CGContextRef    CGContextRef context = UIGraphicsGetCurrentContext();    //設置畫線寬度    CGContextSetLineWidth(context, kLineWidth);    //繪制干擾的彩色直線    for(int i = 0; i < kLineCount; i++)    {      //設置線的隨機顏色      UIColor *color = kRandomColor;      CGContextSetStrokeColorWithColor(context, [color CGColor]);      //設置線的起點      pX = arc4random() % (int)rect.size.width;      pY = arc4random() % (int)rect.size.height;      CGContextMoveToPoint(context, pX, pY);      //設置線終點      pX = arc4random() % (int)rect.size.width;      pY = arc4random() % (int)rect.size.height;      CGContextAddLineToPoint(context, pX, pY);      //畫線      CGContextStrokePath(context);    }}@end

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
av中文天堂在线| 国产乱精品一区二区三区| 中文字幕麻豆| 国产精品乱码一区二区三区视频 | 国产变态拳头交视频一区二区 | 国产xxx在线| 四虎www视频| 日本中文字幕在线视频| 2020国产在线视频| 欧美黑人乱大交ⅹxxxxx| 国产在线中文字幕| 国产高清免费av在线| av在线播放网| 69av二区| 国产精品亚洲色图| 国产一级在线| 国产女人在线观看| 四虎国产精品永久在线| 国产网红在线| 国产在线中文字幕| 亚洲成人av高清| 国产高清视频免费最新在线| 九九热在线免费视频| av一级在线| 国产porny蝌蚪视频| 天堂在线免费av| 免费a在线观看| 一区二区精品区| 国产黄色大片在线观看| 国产乱在线观看视频| 中文岛国精品亚洲一区| 国产视频福利在线| 国产午夜精品一区理论片| 二区三区中文字幕| 黄色毛片在线看| 超碰免费在线观看| 三级小说一区| 亚洲人成影院在线| 精品极品三级久久久久| 国产福利免费观看| 国产一二三区在线视频| 国产理论电影在线观看| 九色精品视频在线观看| 亚洲尤物在线视频| 四虎成年永久免费网站| 在线观看精品视频一区二区三区| 国产色婷婷在线| 2020国产在线视频| 性网站在线观看| 牛牛在线精品视频| 国产乱妇乱子在线播视频播放网站 | 尤物视频在线观看| 中文字幕在线影院| 国产日产精品久久久久久婷婷| 国产麻豆视频网站| 国产一二区视频| 91久久麻豆| 一二三四区在线观看| 麻豆精品不卡国产免费看| 爱福利在线视频| 麻豆av电影在线观看| 国产精品一区二区婷婷| 国产黄在线观看免费观看不卡| 国产导航在线| 免费在线黄色网址| 国产精品免费视频一区一| 在线观看的网站你懂的| 久色视频在线观看| 国产黄色在线| av中文在线| 国产精品久久久久白浆| 国产激情三区| 色中文字幕在线| 国产激情自拍| 国产精品自产拍在线观看2019| 99re在线视频| 国产天堂在线播放视频| 日本视频在线| 国产高清一级片| 国产秒拍福利视频露脸| 国产成人久久精品77777| 青青草免费在线观看| 最近中文字幕mv2018在线高清| 国产爆初菊在线观看免费视频网站 | 国产精品自拍在线观看| 精品美女调教视频| 91超碰国产在线| 免费看成年人视频在线观看| 9999在线视频| 91久久精品国产性色| 国产一级片在线| 国产综合视频一区二区三区免费| 国产成人精品综合网站| 国产无遮挡在线视频免费观看| 欧美成人久久电影香蕉| 国产高清av在线| 国产婷婷视频在线| 中文字幕在线视频免费观看| 久久精品视频免费看| www在线视频观看| 亚洲精品影视在线| 97在线超碰| 日本视频三区| 久热久精久品这里在线观看| 欧美精品一区二区三区免费| 热99re久久精品精品免费| 亚洲精品视频区| 人人九九精品| 国产美女一区视频| 国产精品视频一区二区三区麻豆| 国产免费麻豆视频| 国产视频福利| 2019年中文字幕| 在线黄色国产电影| 久久五月精品| 国产丝袜自拍| 在线观看中文字幕| 黄色片视频在线观看| 国产视频在线播放| 香蕉视频在线观看网站| 快射av在线播放一区| 国产女王在线**视频 | 天堂在线视频| 国产高清免费视频| 欧美色第一页| 国产婷婷视频在线| 亚洲成人福利| 国产中文字幕第一页| 国产国产人免费人成免费视频| 在线观看中文字幕一区| 国产免费自拍视频| 色综合久久五月天| 国产精品福利视频一区二区三区| 亚洲精品男人| 国产人成网在线播放va免费| 99reav| 国产色在线 com| 牛牛在线精品视频| 在线亚洲不卡| 99视频免费| 成av人免费青青久| 四虎免费播放| 91www在线观看| 国产美女av在线| 超碰在线免费播放| 四虎国产精品永久地址998| 国产激情二区| 国产青青视频| 国产性网软件大全| 国产原创在线播放| 樱花草在线观看www| 国产一二三区在线| 午夜视频在线| 国产麻豆免费| 中文字幕在线观看播放| 黄色国产在线| 国产女人在线视频| 最近中文字幕在线中文视频 | 欧洲亚洲精品视频| 亚洲图区欧美| 亚洲最新永久在线观看| av手机免费在线观看| 国产aa视频| 国产区成人精品视频| 国产一二三区精品视频| 中文字幕在线观看av| 国产情侣高潮对白| 国产福利电影在线| av网址在线播放| 欧洲有码在线视频| 国产精品臀控福利在线观看| √天堂资源地址在线官网| 天天操夜夜操天天射| 国产香蕉尹人视频在线| 精品无人乱码| 日本福利午夜视频在线| 成人超碰在线| √天堂资源中文www| 国产成a人亚洲精v品| 在线免费看av| 高清欧美精品xxxxx在线看 | 国产二级片在线| 在线激情网站| 黄色在线视频观看网站| 国产小视频在线播放| 亚洲视频精品在线观看| 天天av综合网| 制服丝袜中文字幕在线观看| a视频在线观看| 中文字幕在线免费视频| 精品国产一区二区三区久久久狼牙 | 999国产在线视频| 天海翼中文字幕| 91xxx在线观看| eeuss影院在线| 2019年中文字幕| 国产一二区在线| 成人免费一区二区三区牛牛 | 性色视频在线| 国产精品国产三级国产试看|