从路径中减去多个重叠路径

时间:2015-07-22 16:45:08

标签: ios swift uikit core-graphics

我有三条路。我想从path3中减去其中两个路径path1和path2。我不希望填充path1和path2之间重叠的区域。这是我用来解释我的意思的图表:

Diagram

我已经尝试了this问题,但接受的答案会产生上面“使用EOClip的结果”中找到的内容。我试过了CGContextSetBlendMode(ctx, kCGBlendModeClear),但它所做的只是填充黑色。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

使用 PaintCode )玩一下我就此登陆了。也许它适合你的情况?

let context = UIGraphicsGetCurrentContext()
CGContextBeginTransparencyLayer(context, nil)

let path3Path = UIBezierPath(rect: CGRectMake(0, 0, 40, 40))
UIColor.blueColor().setFill()
path3Path.fill()

CGContextSetBlendMode(context, kCGBlendModeDestinationOut)
let path2Path = UIBezierPath(rect: CGRectMake(5, 5, 20, 20))
path2Path.fill()
let path1Path = UIBezierPath(rect: CGRectMake(15, 15, 20, 20))
path1Path.fill()

CGContextEndTransparencyLayer(context)