2013-11-24 3 views
0

Итак, у меня есть ярлык, и я хочу, чтобы можно было нажать кнопку, которую я установил, и изменить значения RGB метки. Кажется простым, но я в тупике. Есть идеи?Рандомизация цвета метки

NSInteger r = arc4random()%255; 
NSInteger g = arc4random()%255; 
NSInteger b = arc4random()%255; 

_label.textColor= [UIColor colorWithRed:(arc4random_uniform(r/255.0)) green:(arc4random_uniform(g/255.0)) blue:(arc4random_uniform(b/255.0)) alpha:1] ; 
+0

Что должно делать '(arc4random_uniform (r/255.0)) часть? Разве 'r' не является случайным? – Undo

+0

Кроме того, что конкретно не работает? – Undo

+0

Цвет ярлыка не меняется, как ожидалось. Я знаю, что кнопка правильно подключена, потому что я уже тестировал ее с помощью [UIColor greenColor] – foo

ответ

1

Вы должны заменить

[UIColor colorWithRed:(arc4random_uniform(r/255.0)) green:(arc4random_uniform(g/255.0)) blue:(arc4random_uniform(b/255.0)) alpha:1] ; 

с

[UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1] ; 

Как вы в настоящее время вызова arc4_random_uniform() на случайную величину, которая уже между 1 и 0 - это именно то, что вам нужно, чтобы создать цвет.

1

Ваша проблема в ненужном двойном использовании случайных. Попробуйте это:

NSInteger r = arc4random_uniform(255); 
NSInteger g = arc4random_uniform(255); 
NSInteger b = arc4random_uniform(255); 

UIColor *color = [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]; 
_label.textColor = color; 

Что ты звала arc4random_uniform на случайное значение в диапазоне от 0,0 до 1,0.

Смежные вопросы