iOS随机改变背景色及显示数字

附上代码,类似于注册网站上的验证码

付图:

- (void)change

{

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];

NSMutableString *getStr = [[NSMutableString alloc] initWithCapacity:5];

self.changeString = [[NSMutableString alloc] initWithCapacity:6];

for(NSInteger i = 0; i < 4; i++)

{

NSInteger index = arc4random() % ([self.changeArray count] - 1);

getStr = [self.changeArray objectAtIndex:index];

self.changeString = (NSMutableString *)[self.changeString stringByAppendingString:getStr];

}

}

- (void)drawRect:(CGRect)rect {

[super drawRect:rect];

float red = arc4random() % 100 / 100.0;

float green = arc4random() % 100 / 100.0;

float blue = arc4random() % 100 / 100.0;

UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];

[self setBackgroundColor:color];

NSString *text = [NSString stringWithFormat:@"%@",self.changeString];

CGSize cSize = [@"S" sizeWithFont:[UIFont systemFontOfSize:20]];

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++)

{

NSLog(@"rect.size.width / text.length * i%f",rect.size.width / 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 withFont:[UIFont systemFontOfSize:20]];

}

CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetLineWidth(context, 1.0);

for(int cout = 0; cout < 10; cout++) {

red = arc4random() % 100 / 100.0;

green = arc4random() % 100 / 100.0;

blue = arc4random() % 100 / 100.0;

color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];

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);

}

}

时间: 2024-10-29 03:41:22

iOS随机改变背景色及显示数字的相关文章

QLCDNumber设置背景色和显示数字颜色

      只看楼主 倒序阅读楼主  发表于: 2013-10-22 //LCD时间显示    QLCDNumber *m_pLcdTime = new QLCDNumber(this);    //设置显示几个数字    m_pLcdTime->setDigitCount(19);    //设置数字字体:Outline,轮廓突出,颜色为背景色:Filled,内部填充型,颜色为黑色:Flat,平面型    m_pLcdTime->setSegmentStyle(QLCDNumber::Fla

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

LCD1602 显示数字,字符,自定义字符,字符串,光标

/******************************************* 程序名:   1602液晶屏时钟程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏  STC12C4052AD 外部12MHZ晶振  接线定义:  DB0_DB7 --> P1^0 --P1^7 RS   = P3 ^ 2;         RW   = P3 ^ 3;   E    = P3 ^ 4;   功能:测试LCD1602的显示,显示时间,http://990487026.b

LCD1602显示,用4位总线显示数字,字符,自定义字符,字符串,光标

/******************************************* 程序名:   1602液晶屏时钟程序 编写时间: 2015年10月4日 硬件支持: LCD1602液晶屏  STC12C4052AD 外部12MHZ晶振  接线定义: DB7 --> P1^7 DB6 --> P1^6 DB5 --> P1^5 DB4 --> P1^5 RS   = P3 ^ 2;   RW   = P3 ^ 3;   E    = P3 ^ 4;   功能:LCD1602显

[收集]在iPhone桌面的应用程序图标右上角显示数字

能够在ios桌面的程序icon右上角显示数字(badge number)的方法 在ViewController中的viewDidLoad方法中添加如下代码即可 - (void)viewDidLoad { [super viewDidLoad]; [UIApplication sharedApplication].applicationIconBadgeNumber = 2; } [收集]在iPhone桌面的应用程序图标右上角显示数字,布布扣,bubuko.com

iOS随机颜色

#import <UIKit/UIKit.h> @interface UIColor (RandomColor) +(UIColor *) randomColor; @end #import "UIColor+RandomColor.h" @implementation UIColor (RandomColor) +(UIColor *) randomColor { CGFloat hue = ( arc4random() % 256 / 256.0 ); //0.0 to

iOS UI控件没有显示时的调试技巧

1.遇到UI控件没有显示的问题,可以给这个控件设置背景色 假设这个控件是UIBUtton 如果背景色能显示,那问题就出在image和title值为空 如果背景色不能显示,重写控件的description方法,把控件的frame打印出来分析 2.以下是打印UIView的frame的分类 #import <UIKit/UIKit.h> @interface UIView (Log) @end 1 #import "UIView+Log.h" 2 3 @implementatio

生成随机的18位十六进制数字

这里的for循环之所以条件小于2,是为了增加十六进制数据的复杂度 至于生成多少个十六进制的数字,根据所需 拼接的结果字符串有点瑕疵,使用的时候手动处理去掉最后一个逗号","即可.     /**      * 生成随机的18位      * 十六进制数字      */     function random ()     {         $arr = array();         $str = 1;         while($str <= 18)         {

防止在iOS设备中的Safari将数字识别为电话号码

转:防止在iOS设备中的Safari将数字识别为电话号码 在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录. 别的地方倒也罢了,如果在用户名中出现数字(手机注册新浪微博的话用户名就是“手机用户xxxxxxxx”),版式会很恶心. 经过测试在a标签中的长串数字不会识别为电话,于是给出现用户名但没有链接的地方嵌套一个无动作的a标签,临时解决了这个问题. 但是这样增加了额外的标签,代码的语义性变得很差,而且对大段文字不能用这个方法. 今天无意