Смешивание CAGradientLayer, используемого в качестве тени

У меня есть CAGradientLayer, который я использую в качестве тени. Он исчезает с 60% непрозрачности слева направо. На краю градиента он, кажется, смешивается со слоем под ним и осветляет этот слой:

Notice the ~1 pixel wide lightened effect on the photo beneath the shadow

В самом конце тени есть «свечение» шириной в один пиксель, где оно затемнено, чтобы стать прозрачным. Кажется, что фотография за тенью становится светлее в хвосте тени. Вот крупный план:

enter image description here

Это код, который создает эту тень:

CAGradientLayer *layer = [CAGradientLayer layer];
layer.frame = CGRectMake(sideBar.frame.size.width, 0, 7, sideBar.frame.size.height);
layer.colors = [NSArray arrayWithObjects:
                (id)[[[UIColor blackColor] colorWithAlphaComponent:0.6f] CGColor],
                (id)[[UIColor clearColor] CGColor],
                nil];
[layer setStartPoint:CGPointMake(0, 0.5)];
[layer setEndPoint:CGPointMake(1, 0.5)];
[sideBar.layer insertSublayer:layer atIndex:0];  
sideBar.layer.masksToBounds = NO;

Есть идеи, как от этого избавиться?

13
задан Ash Furrow 1 November 2011 в 21:08
поделиться