我最初有这段代码,用于在按钮上创建“底部突出显示”:
CGContextAddPath(context, highlightPath);
CGContextSetFillColorWithColor(context, [[UIColor colorWithWhite:1.0 alpha:0.5]CGColor]);
CGContextFillPath(context);
这将在与按钮相同的空间中绘制高光,但要低 1 个像素,并且效果很好,因为按钮不透明。但是,我现在有一些透明的,所以我需要从绘图区域中删除按钮后面的区域。
我尝试过使用EOClip
来执行此操作,但无法弄清楚要使用哪种组合。按钮的路径称为buttonPath
,高亮路径相同但低 1 个像素,称为highlightPath
。我怎么能阻止它在里面绘制buttonPath
,同时绘制到highlightPath?
编辑:
好的,所以这和切换第 2 行和第 3 行都会导致整个形状被着色,并且出现以下错误clip: empty path.
:
CGContextEOClip(context);
CGContextAddPath(context, buttonPath);
CGContextAddPath(context, highlightPath);
CGContextSetFillColorWithColor(context, [[UIColor colorWithWhite:1.0 alpha:0.5] CGColor]);
CGContextFillPath(context);