Graphics 核心图形中的内部阴影

Graphics 核心图形中的内部阴影,graphics,photoshop,core,shadow,Graphics,Photoshop,Core,Shadow,我想在核心图形中做一些类似于Photoshop内部阴影效果的事情。如果我绘制/填充具有此效果的路径,我希望得到类似以下内容: 以下是制作此图像所需的图层,从后到前: 基色,在本例中为白色背景 阴影 投下阴影的形状。这是通过找到内部形状的边界框,将该框扩展超过阴影的宽度,然后在具有内部形状的框中切割一个孔来实现的 用内部形状剪裁这些 然后最后画出周围的彩色形状,在本例中是一个内部形状被切掉的矩形 注意:根据预期的外观,投射阴影的形状可能与填充前景色的形状相同,也可能不同。内部形状和外部形状之间的一

我想在核心图形中做一些类似于Photoshop内部阴影效果的事情。如果我绘制/填充具有此效果的路径,我希望得到类似以下内容:

以下是制作此图像所需的图层,从后到前:

基色,在本例中为白色背景

阴影

投下阴影的形状。这是通过找到内部形状的边界框,将该框扩展超过阴影的宽度,然后在具有内部形状的框中切割一个孔来实现的

用内部形状剪裁这些

然后最后画出周围的彩色形状,在本例中是一个内部形状被切掉的矩形

注意:根据预期的外观,投射阴影的形状可能与填充前景色的形状相同,也可能不同。内部形状和外部形状之间的一个薄截面将投射一个减少的阴影。如果不需要这种效果,则需要更大的外部形状来获得一致的内部阴影。此外,如果阴影延伸到外部形状之外,则需要对阴影进行显式剪裁

为在中间绘制一个形状,像这个示例形状,您将需要用两个子路径绘制一条路径。一个子路径是外盒,另一个子路径是内部不规则形状。如果使用默认的非零绕线数规则,则需要在与内部不规则形状相反的方向上为外部长方体指定点。例如,按顺时针顺序指定外部长方体的点需要按逆时针顺序指定内部形状的点。有关更多详细信息,请参阅。

石英中的插图/内部阴影 将此代码放到xcode游乐场,您就可以开始了:


谢谢,但我的主要问题是:如何以所需的方式在核心图形中“剪切”内容?我编辑了我的答案,以添加有关绘制带孔路径的更多信息。我将如何使用InnerShadowDrawing.m在UILabel的文本上绘制内阴影?