我再次提到两个相互关联的问题
我正在添加用于绘制线条的代码..
for (int i=0; i<[currentPath count]; i++)
{
CGPoint mid1 = [[self midPoint:[currentPath objectAtIndex:i+1] :[currentPath objectAtIndex:i]] CGPointValue];
CGPoint mid2 = [[self midPoint:[currentPath objectAtIndex:i+2] :[currentPath objectAtIndex:i+1]] CGPointValue];
CGContextMoveToPoint(context, mid1.x, mid1.y);
CGContextAddQuadCurveToPoint(context, [[currentPath objectAtIndex:i+1] CGPointValue].x, [[currentPath objectAtIndex:i+1] CGPointValue].y, mid2.x, mid2.y);
CGContextSetShadow(context, CGSizeMake(-2, -2), 3);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetStrokeColorWithColor(context,[color CGColor]);
CGContextSetLineWidth(context, linewidth);
CGContextStrokePath(context);
i+=2;
}
答案 0 :(得分:4)
我找到了解决方案.. 问题很愚蠢...... 我在创建问题的每一次迭代中都在煽动道路。现在我甚至可以用不到1的alpha绘制..
CGContextStrokePath(context);
这条线在外面循环播放..现在一切正常了:)
答案 1 :(得分:3)
对于重叠阴影,您需要透明层首先合成它们。请参阅Quartz 2D Programming Guide中的Transparency Layers。
答案 2 :(得分:0)
看起来你正在使用一系列圆圈绘制路径。
麻烦的是你已经在各个点上设置了阴影,这就是你得到奇怪效果的原因。
一种可能的解决方案 - 不要在点上放置阴影,放在路径上:复制您绘制的线条,以不同的颜色绘制,偏移它并放入实际线条下。
或者,如果您正在使用图层 - 请查看阴影路径。