UIColor colorWithRed:green:blue:alpha: always returns white unless one argument is 0

后端 未结 4 1117
轻奢々
轻奢々 2020-12-03 23:23

I am using

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

to change the background color of my table view cells.

But fo

相关标签:
4条回答
  • 2020-12-03 23:27

    Set navigation bar to transparent in 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];
    }
    
    0 讨论(0)
  • 2020-12-03 23:39

    The parameter aren't a values of 0 to 255 but a float between 0.0 and 1.0:

    [UIColor colorWithRed:0.0f/255.0f green:155.0f/255.0f blue:218.0f/255.0f alpha:1.0f]; 
    
    0 讨论(0)
  • 2020-12-03 23:51

    The values need to be floats (in the range 0.0 to 1.0), not ints (in the range 0 to 255).

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

    Try:

    [UIColor colorWithRed:136.0/255.0 green:155.0/255.0 blue:218.0/255.0 alpha:1.0]; 
    
    0 讨论(0)
  • 2020-12-03 23:52

    The params are not integers but floats, so you probably want to divide all color float values with 255. Like this:

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

    That's why the color changes when you set red to 0 instead of 1 which 136 means in this case.

    0 讨论(0)
提交回复
热议问题