核心绘图中的内阴影

10
我想在Core Graphics中做类似于Photoshop内阴影效果的事情。如果我用这个效果画/填充一个路径,我希望得到类似于以下内容的东西: alt text

我该如何使用你的InnerShadowDrawing.m在UILabel文本上绘制内阴影? - Ryan Poolos
2个回答

11
以下是需要创建的图层,从后往前排列:
基础颜色,例如白色背景。
阴影。
投射阴影的形状。这是通过找到内部形状的边界框,将该框扩展超过阴影的宽度,然后使用内部形状在框中切一个洞来制作的。
使用内部形状进行裁剪。
最后绘制周围的彩色形状,例如带有内部形状剪切的矩形。
注意:根据期望的外观,投射阴影的形状可能与填充前景色的形状不同。内部形状和外部形状之间的薄片将投射减少的阴影。如果不需要该效果,则需要更大的外部形状以获得一致的内部阴影。此外,需要明确地裁剪阴影,以防阴影延伸超出外部形状。
为了绘制一个像这个例子形状中间带有空洞的形状,您需要绘制一个具有两个子路径的路径。一个子路径将是外框,另一个将是内部不规则形状。如果您使用默认的非零环绕数规则,则需要以与内部不规则形状相反的方向指定外框的点。例如,按顺时针顺序指定外框的点将要求按逆时针顺序指定内部形状的点。有关更多详细信息,请参阅Quartz 2D程序员指南中的路径部分。

谢谢,但我的主要问题是:如何以所需的方式在核心图形中“剪切”物体? - mrueg
我编辑了我的答案,添加了有关如何绘制带有孔洞路径的更多信息。 - Mr. Berna

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接