UIColor colorWithRed: зеленый: синий: альфа: всегда возвращает белый, если один аргумент не равен 0 - PullRequest
6 голосов
/ 28 сентября 2011

Я использую

[UIColor colorWithRed:136 green:155 blue:218 alpha:1.0]; 

для изменения цвета фона ячеек моего табличного представления.

Но по какой-то причине фон остается белым.Если я попробую

[UIColor colorWithRed:0 green:155 blue:218 alpha:1.0]; 

, цвет изменится.Это не имеет смысла для меня.Любой совет или советы?

Ответы [ 4 ]

38 голосов
/ 28 сентября 2011

Параметр - это не значения от 0 до 255, а значение с плавающей точкой от 0,0 до 1,0:

[UIColor colorWithRed:0.0f/255.0f green:155.0f/255.0f blue:218.0f/255.0f alpha:1.0f]; 
3 голосов
/ 28 сентября 2011

Значения должны быть плавающими (в диапазоне от 0,0 до 1,0), а не целыми числами (в диапазоне от 0 до 255).

+ (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha

Попробуйте:

[UIColor colorWithRed:136.0/255.0 green:155.0/255.0 blue:218.0/255.0 alpha:1.0]; 
1 голос
/ 28 сентября 2011

Параметры не целые числа, а числа с плавающей запятой, поэтому Вы, вероятно, хотите разделить все значения цвета с плавающей точкой на 255. Как это:

  [UIColor colorWithRed:136.0/255 green:155.0/255 blue:218.0/255 alpha:1.0];

Вот почему цвет меняется, когда вы устанавливаете красный на 0 вместо 1, что в данном случае означает 136.

0 голосов
/ 04 апреля 2018

Установить прозрачную панель навигации в iOS 11

(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [self.navigationController.navigationBar setBackgroundImage:[UIImage new]
                                                  forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.shadowImage = [UIImage new];
    self.navigationController.navigationBar.translucent = YES;
    self.navigationController.view.backgroundColor = [UIColor clearColor];
    self.navigationController.navigationBar.backgroundColor = [UIColor clearColor];
}
...