Mat*_*t S 18
我认为应该适合你.Arc4random()在性能和精度方面要比rand()好得多.Rand()也需要在使用前播种.
// 16777215 is FFFFFF
NSInteger *baseInt = arc4random() % 16777216;
NSString *hex = [NSString stringWithFormat:@"%06X", baseInt];
Run Code Online (Sandbox Code Playgroud)
编辑:根据有关格式的注释进行编辑.
您可以rand()
在Objective-C应用程序中使用标准C库例程.然后,从那里开始,您需要调用它三次,以获得随机颜色的每个红色,绿色和蓝色通道的随机值.你需要%
通过通道可以拥有的最大值(通常为256)来修改()值.从那里你可以NSColor
适当地构建你.所以你的代码可能看起来像:
int red = rand() % 255;
int green = rand() % 255;
int blue = rand() % 255;
NSColor* myColor = [NSColor colorWithCalibratedRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
因为NSColor采用浮点数而不是整数,所以更好的方法是从开始就将随机值除以RAND_MAX:
float rand_max = RAND_MAX;
float red = rand() / rand_max;
float green = rand() / rand_max;
float blue = rand() / rand_max;
NSColor* myColor = [NSColor colorWithCalibratedRed:red green:green blue:blue alpha:1.0];
Run Code Online (Sandbox Code Playgroud)
后一种代码不会将颜色数量限制为24位频谱.
归档时间: |
|
查看次数: |
5454 次 |
最近记录: |