我有三条路。我想从path3中减去其中两个路径path1和path2。我不希望填充path1和path2之间重叠的区域。这是我用来解释我的意思的图表:
我已经尝试了this问题,但接受的答案会产生上面“使用EOClip的结果”中找到的内容。我试过了CGContextSetBlendMode(ctx, kCGBlendModeClear)
,但它所做的只是填充黑色。有什么想法吗?
答案 0 :(得分:1)
使用 PaintCode (paint-code)玩一下我就此登陆了。也许它适合你的情况?
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)