Я рисую простой путь в iOS 5 с Core Graphics:
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint( path, NULL, center.x , topMargin );
CGPathAddLineToPoint(path, NULL, center.x+20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin+40);
CGPathAddLineToPoint(path, NULL, center.x-20, topMargin+50);
CGPathAddLineToPoint(path, NULL, center.x , topMargin );
Теперь я хочу заполнить его в режиме наложения следующим образом:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0.4] setFill];
CGContextAddPath(context, path);
CGContextSetBlendMode (context, kCGBlendModeOverlay);
CGContextFillPath(context);
Что дает мне точноожидаемый результат.Но затем я хочу создать эффект тиснения.Я думал об использовании белой и черной тени для достижения этого эффекта следующим образом:
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(1, 1), 1.0, highlightColor);
CGContextSetBlendMode (context, kCGBlendModeNormal);
CGContextFillPath(context);
[[UIColor colorWithRed:0 green:0 blue:0 alpha:0] setFill];
CGContextAddPath(context, path);
CGContextSetShadowWithColor(context, CGSizeMake(-1, -1), 1.0, shadowColor);
CGContextSetBlendMode (context, kCGBlendModeNormal);
CGContextFillPath(context);
Проблема в том, что тени не рисуются, когда альфа установлен на 0.
Теперьвопрос: есть ли способ нарисовать только тени без цвета заливки, но с полной альфа?Могу ли я как-нибудь предотвратить прорисовку внутренней части моего пути?Или, возможно, существует более простой способ рисования двух теней для одного пути?