iOS White to Transparent Gradient Layer is Gray

Eric Gao picture Eric Gao · Jul 22, 2014 · Viewed 25.5k times · Source

I have a CAGradientLayer inserted to the bottom of this small detail view that pops up at the bottom of the app. As you can see, I've set the colors from white to clear, but there's this strange gray tint that is showing up. Any ideas?

    // Set up detail view frame and gradient
    [self.detailView setFrame:CGRectMake(0, 568, 320, 55)];

    CAGradientLayer *layer = [CAGradientLayer layer];
    layer.frame = self.detailView.bounds;
    layer.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
    layer.startPoint = CGPointMake(1.0f, 0.7f);
    layer.endPoint = CGPointMake(1.0f, 0.0f);
    [self.detailView.layer insertSublayer:layer atIndex:0];

Here is the problematic view:

Here is the problematic view

Answer

Eric Gao picture Eric Gao · Jul 22, 2014

clearColor has a black color channel with an alpha of 0, so I had to use

[UIColor colorWithWhite:1 alpha:0]

and it works fine.