如何在iphone sdk中随机改变图像视图的背景颜色?

时间:2011-12-24 05:32:02

标签: iphone uiscrollview uiimageview

我想随意更改图像视图的背景颜色,我不想通过

设置图像

[imageView setImage:[UIImage imageNamed:@"img1.png"]];此代码我想更改背景颜色

NSArray *colorArray = [NSArray arrayWithObjects:@"[UIColor greenColor]",@"[UIColor whiteColor]",@"[UIColor redColor]",nil];

// add all of the images to the scroll view
for (int i = 1; i < 5; i++) 
{
    imageView = [[UIImageView alloc] init];
    [imageView setBackgroundColor:[colorArray objectAtIndex:i-1]];
    [self.scrollView addSubview:imageView];

}

有可能吗?我试过,但我得到[NSCFString CGColor]的错误:在我的应用程序中,我想创建like this application。任何人都可以指导我。

3 个答案:

答案 0 :(得分:2)

您不应该在数组中存储字符串,存储实际的颜色对象。

NSArray *colorArray = [NSArray arrayWithObjects:[UIColor greenColor], [UIColor whiteColor], [UIColor redColor], nil];

此外,如果您不使用ARC,则您的imageView正在泄露。

答案 1 :(得分:1)

如果你需要一组固定的4种颜色的随机颜色,你应该存储Ecarrion答案中提到的颜色。然后你可以从中选择一种随机颜色。如果你真的想要一个更大的集合中的随机颜色,你可以使用

CGFloat green=(arc4random()%100) *.01;
CGFloat blue=(arc4random()%100) * .01;
CGFloat red=(arc4random()%100) *.01;
UIColor *imageBgColor=[UIColor colorWithRed:red green:green blue:blue alpha:1];
[imageView setBackgroundColor:imageBgColor];

此外,您的imageView正在泄露。

//fix after adding as sub view to scroll view
[imageView release];

答案 2 :(得分:0)

float red = arc4random() % 255 / 255.0;
float green = arc4random() % 255 / 255.0;
float blue = arc4random() % 255 / 255.0;
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
[Yourimageview setBackgroundColor:color];

生成随机颜色R,G,B并在背景中设置Imagview。