CoreGraphics Quartz рисует тень на прозрачном альфа-пути

При поиске в Интернете около 4 часов не получил ответа, поэтому:
Как нарисовать тень на пути, имеющем прозрачность?

- (void)drawRect:(CGRect)rect
{
    CGContextRef c = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(c, 2);
    CGContextSetStrokeColorWithColor(c, [[UIColor whiteColor] CGColor]);
    CGContextSetShadowWithColor(c, CGSizeMake(0, 5), 5.0, [[UIColor blackColor]CGColor]);
    CGContextSetFillColorWithColor(c, [[UIColor colorWithWhite:1.0 alpha:0.8] CGColor]);

    // Sample Path
    CGContextMoveToPoint(c, 20.0, 10.0);
    CGContextAddLineToPoint(c, 100.0, 40.0);
    CGContextAddLineToPoint(c, 40.0, 70.0);
    CGContextClosePath(c);

    CGContextDrawPath(c, kCGPathFillStroke);
}

Первое, что я замечаю, тень находится только вокруг штриха. Но пока проблема не в этом. Тень за контуром / прямоугольником все еще видна, что означает: цвет тени влияет на цвет заливки моего контура. Цвет заливки должен быть белым, а не серым. Как решить эту проблему?

18
задан STW 7 August 2013 в 17:13
поделиться