填充 UIBezierPath 但保持路径清晰

fill UIBezierPath but keep path clear

无法找到填充关闭的解决方案 UIBezierPath 具有一些颜色和一些宽度,但保持路径线透明。

[[UIColor clearColor] setStroke] does not work.

我有:

我想要的:

两个矩形的共享线具有相同的坐标,这就是为什么我在绘制它们时需要进行一些移动。

如果您要做的是擦除路径粗轮廓内的所有内容,请使用 CGContextReplacePathWithStrokedPath 将笔划转换为路径。然后用清晰的混合模式填充它,从而沿着粗路径擦除绘图。或者,再次使用透明混合模式对路径进行描边。

在这张图中,粗黄色椭圆没有描边或填充黄色;椭圆很清晰,黄色是后面的视图,透过红色矩形可以看到。换句话说,椭圆 通过红色矩形擦除 一个椭圆形状。

这是绘制椭圆的代码:

    CGContextAddEllipseInRect(con, CGRectMake(100,100,200,50))
    CGContextSetLineWidth(con, 10)
    CGContextSetBlendMode(con, kCGBlendModeClear)
    CGContextReplacePathWithStrokedPath(con)
    CGContextFillPath(con)

或者你可以这样做:

    CGContextAddEllipseInRect(con, CGRectMake(100,100,200,50))
    CGContextSetLineWidth(con, 10)
    CGContextSetBlendMode(con, kCGBlendModeClear)
    CGContextStrokePath(con)

用 [UIColor clearColor] 抚摸和用橡皮擦去你已经完成的填充不是一回事,它只是用透明墨水笔在上面画画。

您可以使用 pathByStrokingPath 创建第二条路径,然后使用 EOClip 'mask' 从您的填充区域到此区域,或者您可以用后面的任何 backgroundColor 描边您的路径...