Как изменить цвет фона изображения случайным образом в iphone SDK? - PullRequest
0 голосов
/ 24 декабря 2011

Я хочу изменить цвет фона изображения в случайном порядке, я не хочу устанавливать изображения на

[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] :. в моем приложении я хочу создать как это приложение . может ли любое тело вести меня.

Ответы [ 3 ]

2 голосов
/ 24 декабря 2011

Вы не должны хранить строку в вашем массиве, сохраняйте фактические объекты цветов.

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

Кроме того, если вы не используете ARC, ваш imageView протекает.

1 голос
/ 24 декабря 2011

Если вам нужны случайные цвета из фиксированного набора из 4 цветов, вы должны хранить цвета, как указано в ответе Экарриона.Тогда вы можете выбрать случайный цвет из этого.Если вы действительно хотите случайный цвет в большем наборе, вы можете использовать

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];
0 голосов
/ 03 августа 2017
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 в фоновом режиме.

...